5分钟教你用nodeJS手写一个mock数据服务器的方法

2020-06-17 05:44:13易采站长站整理

try {
let jsonStr = fs.readFileSync(item).toString();
ctx.body = {
data: JSON.parse(jsonStr),
state: 200,
type: 'success' // 自定义响应体
}
}catch(err) {
ctx.throw('服务器错误', 500);
}
});
});

app
.use(router.routes())
.use(router.allowedMethods());

app.listen(3000);

添加控制台日志 我们使用koa-logger实现在终端打印node日志,方便调试,虽然这不是该文章的重点,但是对于想做node开发的前端从业者,还是很有必要了解的。


const logger = require('koa-logger')
app.use(logger());

这样,我们每个请求都会在终端打印出来。

路由映射文件的生成 该功能也不是本文的重点,但是会极大的方便前端开发者调试请求,因为如果api路径很长,我们需要一个个查找,但是有了这个map文件,我们只需要拷贝自动生成的路径即可。具体实现如下:


//...
const routerMap = {}; // 存放路由映射

// 注册路由
glob.sync(resolve('./api', "**/*.json")).forEach((item, i) => {
// ...

// 记录路由
routerMap[apiJsonPath] = apiPath;
});

fs.writeFile('./routerMap.json', JSON.stringify(routerMap, null , 4), err => {
if(!err) {
console.log('路由地图生成成功!')
}
});

基本目录结构

完整代码

clone地址  github地址 

https://github.com/MrXujiang/openCoder/tree/master/mockServer