Javascript 当json服务器用作模块时,如何让它延迟响应?

Javascript 当json服务器用作模块时,如何让它延迟响应?,javascript,json,node.js,json-server,Javascript,Json,Node.js,Json Server,允许通过命令行配置要延迟的响应: json-server --port 4000 --delay 1000 db.json 当使用json服务器作为一个模块时,如何做到这一点?以下操作不起作用: const jsonServer = require('json-server') var server = jsonServer.create(); server.use(jsonServer.defaults()); server.use(jsonServer.router("db.json")

允许通过命令行配置要延迟的响应:

json-server --port 4000 --delay 1000 db.json
当使用
json服务器
作为一个模块时,如何做到这一点?以下操作不起作用:

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
函数,不执行它。

顺序很重要。中间件应该在路由器之前。如果将超时移到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();
});

或许了解以下内容很有用: