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









