// .roadhogrc.mock.js
export default {
// Support type as Object and Array
'GET /api/users': { users: [1,2] },
// Method like GET or POST can be omitted
'/api/users/1': { id: 1 },
// Support for custom functions, the API is the same as express@4
'POST /api/users/create': (req, res) => { res.end('OK'); },
};
谈不上源码解读,仅仅说说学到的东西
1 Mock 接口
roadhog 依赖于
webpack-dev-server
,然后webpack-dev-server
底层使用了express
。1.1 添加路由规则
解析配置文件,逐条添加路由规则。
如上面这个文件,路由就会被转化为如下代码(略作简化):
其他的也大致同理。
require.cache
这里有个细节,
require
同一个文件会有缓存。可以操作require.cache
来解决1.2 重新刷新路由
文件监控,一旦发生变化就重新加载路由,这里涉及到动态修改 express 的路由。 可以用
app._router.stack
来操作路由对象2 babel/register
让 Node 代码支持 ES6 语法。
另外
.babelrc
需要配好