[英]I can't successfully chain my route handlers?
我有一个正在工作的node.js / express应用,其路由看起来像-
app.post('/user/:who/update', isLoggedIn, userUpdate.save);
在userUpdate.save内部,我正在调用res.redirect
或res.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.