繁体   English   中英

我无法成功链接我的路线处理程序?

[英]I can't successfully chain my route handlers?

我有一个正在工作的node.js / express应用,其路由看起来像-

app.post('/user/:who/update', isLoggedIn, userUpdate.save);

在userUpdate.save内部,我正在调用res.redirectres.render (不同的路由,但思路相同)。 我不喜欢这样 我想将res。*呼叫保留在route.js中,但是当我尝试这样做时

app.post('/user/:who/update', isLoggedIn, userUpdate.save, function(req, res) { res.redirect('/user/'+req.user.local.username); });

userUpdate.save末尾调用next(req, res)时,不会调用res.redirect函数。 我认为next()作用似乎并不是实际的。 我想念什么?

next()的调用会绕过其余的回调。

请参阅此参考http://expressjs.com/api.html#app.post.method

看一下这个示例,并交替注释掉每个next()调用(然后是两个),并观察执行流向何处。

var express = require('express');
var app = express();

app.get('/test', function(req, res, next){
    console.log('/test callback1');
    next('route');
    //next();
}, function(res, res, next){
    console.log('/test callback2');
    res.send('sent from /test/cb2')
});

app.get('/test', function(req, res){
    console.log('response from /test route handler 2');
    res.send('sent from /test route handler 2');
})

var server = app.listen(8911, function (s) {
  console.log('Listening on port ', server.address().port);

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM