2017-04-01 16 views
0

json-server允许一个配置响应通过命令行被推迟:如何让json-server在作为模块使用时延迟响应?

json-server --port 4000 --delay 1000 db.json 

如何使用json-server作为一个模块时一次尝试这样做呢?以下不起作用:

const jsonServer = require('json-server') 
var server = jsonServer.create(); 

server.use(jsonServer.defaults()); 
server.use(jsonServer.router("db.json")); 
server.use(function(req, res, next) { 
    setTimeout(next, 1000); 
}); 

server.listen(4000); 

它只是完全忽略了setTimeout函数,并没有执行它。

+0

也许下面是很有必要知道:https://github.com/typicode/json-server/blob/2b26630ac6379fba77eb104b22e83b41a004b52e/src/cli/run.js# L77 –

回答

2

订单很重要。中间件应该在路由器之前。如果您在server.use(jsonServer.router("db.json"));之前移动超时值,它应该可以工作。

这是我的工作例如:

var app = jsonServer.create(); 
var router = jsonServer.router(path.join(__dirname, '../../test/api/dev.json')); 
var middlewares = jsonServer.defaults(); 

app.use(function(req, res, next){ 
    setTimeout(next, 10000); 
}); 
app.use(middlewares); 
app.use(router); 

server = app.listen(3000, function() { 
    console.log('JSON Server is running on localhost:3000'); 
    done(); 
});