2015-06-22 3 views
0

У меня Node.js/курьерская приложение я работаю и маршруты, которые выглядят как-Я не могу успешно связать обработчики маршрута?

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

внутри userUpdate.save Я звоню res.redirect или res.render (разные маршруты, но та же идея). Мне это не нравится. Я хотел бы, чтобы мой Рез. * Звонки в routes.js, но когда я пытаюсь это

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

с призывом next(req, res) в конце userUpdate.save, функция res.redirect не называется. Я думаю, что next(), похоже, не так, как есть на самом деле. Что мне не хватает?

ответ

0

Звонок в next() обходит оставшуюся часть ваших обратных вызовов.

Смотреть этот REF 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); 

}); 
+0

Что я недопонимание об этом потом - маршрут может быть обработан с использованием более чем одну функцию обратного вызова (не забудьте указать следующий объект): 'app.get («/ пример/б» , функция (req, res, next) { console.log ('ответ будет отправлен следующей функцией ...'); next(); }, функция (req, res) { res.send ('Hello from B!'); }); ' –

 Смежные вопросы

  • Нет связанных вопросов^_^