Я получаю следующую ошибку при использовании Node.js и Express. Вот мои варианты:TypeError: Object # <IncomingMessage> не имеет метода 'flash'
Node : v0.8.8
Express: 3.0.0rc3
Следующая ошибка, полученные при попытке получить доступ к странице:
TypeError: Object #<IncomingMessage> has no method 'flash'
at routes (/Users/nblavoie/Desktop/HotPie/HotPie/apps/authentication/routes.js:23:8)
Я пытался удалить app.use (app.router); из app.js без успеха. Вот код, который вызывает ошибку. См. Строку req.flash.
app.post('/sessions', function(req, res)
{
if(req.body.user == 'piechief'
&& req.body.password == '12345')
{
req.session.currentUser = req.body.user;
req.flash('info', "You're logged in as #{req.session.currentUser}");
res.redirect("/login");
return;
}
else
{
req.flash('error', "Those credentials were incorrect. Try again.");
res.redirect("/login");
return;
}
});
Вот интересная часть моих app.js:
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({
secret: "DBBD6BE563419EDB0E5CBD228E603D4AD232CE05434B4FA95C6908B64EA515C3",
store: new RedisStore({
host: "127.0.0.1",
port: "6379",
db: "mydb"
})
}));
app.use(app.router);
app.use(express.static(path.join(__dirname, '/public')));
});
Любая идея, пожалуйста? Я забрал loof в Express'flash documentation, и я не вижу, что я делаю неправильно.
Спасибо! Кроме того, для людей, которые хотят знать, как использовать промежуточное программное обеспечение connect-flash, приведен пример [Express 3] https://github.com/jaredhanson/connect-flash/blob/master/examples/express3/app. JS. –