Ich bekomme den folgenden Fehler bei der Verwendung von Node.js und Express. Hier sind meine Ausführungen:TypeError: Objekt # <IncomingMessage> hat keine Methode 'Flash'
Node : v0.8.8
Express: 3.0.0rc3
Der folgende Fehler wird erhalten bei dem Versuch, auf die Seite zuzugreifen:
TypeError: Object #<IncomingMessage> has no method 'flash'
at routes (/Users/nblavoie/Desktop/HotPie/HotPie/apps/authentication/routes.js:23:8)
Ich habe versucht, die app.use (app.router) zu entfernen; aus der app.js ohne Erfolg. Hier ist der Code, der den Fehler verursacht. Siehe entsprechende Zeile.
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;
}
});
Hier ist der interessante Teil meiner 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')));
});
Jede Idee, bitte? Ich habe einen Loof an der Express'flash documentation genommen und ich kann nicht sehen, was ich falsch mache.
Dank! Für die Leute, die wissen möchten, wie man die connect-flash-Middleware benutzt, gibt es hier ein Beispiel [Express 3] https://github.com/jaredhanson/connect-flash/blob/master/examples/express3/app. js. –