当使用 调用时http://localhost:3000/foobar
,它按预期工作 -next()
从第一个路由处理程序调用,我们'final'
从第二个处理程序获取:
var express = require('express');
var app = express();
var http = require('http');
app.set('port', 3000);
app.get('/:id', function(req, res, next) {
return next();
});
app.get(/.+/, function(req, res, next) {
res.send('final');
});
http.createServer(app).listen(app.get('port'));
但是,restify 中的类似代码似乎没有next()
在第一个处理程序中调用:
var restify = require('restify');
var server = restify.createServer();
server.get('/foobar', function(req, res, next) {
return next();
});
server.get(/.+/, function(req, res, next) {
res.send('final');
});
server.listen(3000, function(req, res) {
console.log('listening on port 3000');
});
我从 restify 的路由文档中的理解是,调用next()
将运行链中的下一个处理程序,这与 express 的工作方式相匹配。
我错过了什么,我做错了什么?