0

当使用 调用时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 的工作方式相匹配。

我错过了什么,我做错了什么?

4

1 回答 1

0

我不相信这行得通。它确实支持链接,但不支持路由本身。 https://github.com/mcavage/node-restify/issues/365

于 2013-08-28T17:17:41.733 回答