Tôi nhận được lỗi sau trong khi sử dụng Node.js và Express. Dưới đây là phiên bản của tôi:LoạiError: Object # <IncomingMessage> không có phương thức 'flash'
Node : v0.8.8
Express: 3.0.0rc3
Các lỗi sau đây được lấy trong khi cố gắng truy cập vào trang:
TypeError: Object #<IncomingMessage> has no method 'flash'
at routes (/Users/nblavoie/Desktop/HotPie/HotPie/apps/authentication/routes.js:23:8)
tôi đã cố gắng để loại bỏ các app.use (app.router); từ app.js không thành công. Đây là mã gây ra lỗi. Xem dòng 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;
}
});
Đây là một phần thú vị của app.js tôi:
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')));
});
Bất kỳ ý tưởng xin vui lòng? Tôi đã nhận một loof tại Express'flash documentation và tôi không thể nhìn thấy những gì tôi đang làm sai.
Cảm ơn! Ngoài ra, đối với những người muốn biết cách sử dụng phần mềm trung gian kết nối flash, đây là một ví dụ [Express 3] https://github.com/jaredhanson/connect-flash/blob/master/examples/express3/app. js. –