2017-04-01 18 views
0

json-server 1は、コマンドラインを介して遅延させる応答を設定することができます:json-serverをモジュールとして使用して応答を遅らせるには?

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

どのように1モジュールとして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); 

機能は完全に無視され、実行されません。

+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(); 
}); 
関連する問題