を終えた後、私はRestifyルートが
server = restify.createServer({...});
server.use(restify.acceptParser(server.acceptable));
server.use(restify.queryParser());
server.use(restify.bodyParser());
...
app.post('/test/:id', function (req, res, next) {...})
server.use(function(err, req, res, next) {
logger.error({req: req}, "error processing request");
});
、一般的なエラー処理を行うためのRestifyの「使用()」メソッド、例えばを使用するTREDが、最後.USE()ハンドラは後に呼び出されることはなかった)(使用しますルート処理を完了しました。 ルートの後に「登録済み」でした。私はサーバの起動時に見ることができます。私のルートが処理された後、この.use()が処理されました。私はかなり新しく復元するので、私の質問は、.user()メソッドは、ルートの終了後にハンドラを適用することができます。私は、経路終了後に処理を行うために 'after'イベントを聞くことができますが、.use()ハンドラを実行できるかどうかを確認したいと思います。
更新日: ここに簡略化したコードを示します。 server.post()の前に登録された.use()メソッドは呼び出されましたが、server.post()の後に登録されたメソッドは呼び出されませんでした。助言がありますか?
var restify = require('restify');
var cookieParser = require('restify-cookies');
var helmet = require('helmet');
var util = require('util');
var logger = require('./util/logger');
module.exports = function(server){
server.use(restify.acceptParser(server.acceptable));
server.use(restify.queryParser());
server.use(restify.bodyParser());
server.use(helmet.noCache());
server.use(helmet.hidePoweredBy());
server.use(cookieParser.parse);
// this .use() method is called when accessing the server.post route below
server.use(function(req, res, next) {
console.log('BERORE ROUTE');
return next();
});
server.post('/test/:returnId', function (req, res, next) {
var err = new restify.errors.InternalServerError('oh noes!');
return next(err);
});
// this .use() method is not called when accessing the server.post route above
server.use(function(req, res, next) {
console.log('Tata...');
return next();
});
};
補正示すように:誤植、app.post( '/試験/:ID'、関数(REQ、RES、次){...})がサーバであるべきです。 – Jane
@migg私はnext()を呼び出しました。 server.post()の前の.use()メソッドは呼び出されましたが、server.post()の後のものは呼び出されませんでした。 – Jane