当用作模块时,如何让 json-server 延迟响应?

Posted

技术标签:

【中文标题】当用作模块时,如何让 json-server 延迟响应?【英文标题】:How to get json-server, when used as module, to delay responses? 【发布时间】:2017-08-26 17:48:13 【问题描述】:

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

【问题讨论】:

或许了解以下内容很有用:github.com/typicode/json-server/blob/… 【参考方案1】:

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

【讨论】:

以上是关于当用作模块时,如何让 json-server 延迟响应?的主要内容,如果未能解决你的问题,请参考以下文章

带有 express/db.json 的 json-server 未反映更改

Json-server GET 请求不断触发

优化 Nginx HTTPS 延迟 - 如何让Nginx提速 30%的?

优化 Nginx HTTPS 延迟 - 如何让Nginx提速 30%的?

优化 Nginx HTTPS 延迟 - 看我如何让Nginx提速 30%的?

优化 Nginx HTTPS 延迟 - 看我如何让Nginx提速 30%的?