我是表达框架的新手,这是我在server.js
文件中的内容:
// Module dependencies.
var application_root = __dirname,
express = require( 'express' ), //Web framework
path = require( 'path' ), //Utilities for dealing with file paths
mongoose = require( 'mongoose' ); //MongoDB integration
//Create server
var app = express();
// Configure server
app.configure( function() {
app.use( express.bodyParser() );
app.use( express.methodOverride() );
app.use( app.router );
app.use(express.session({secret:'thisismysupersecret'}));
app.use( express.static( path.join( application_root, 'site') ) );
app.use( express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.post("/verifyLogin",function(request,response){
var usr=request.body.username;
var pass=request.body.password;
//request.session.email=usr;
response.redirect('dashboard');
});
//Start server
var port = 3000;
app.listen( port, function() {
console.log( 'Express server listening on port %d in %s mode', port, app.settings.env);
});
当我导航到localhost:3000时出现此错误
500 TypeError:无法读取属性' connect.sid'未定义的
问题出在哪里?
答案 0 :(得分:75)
您错过了cookieParser
中间件:
...
app.use( express.cookieParser() );
app.use(express.session({secret:'thisismysupersecret'}));
...
(因为会话是使用cookie实现的)。
答案 1 :(得分:0)
我遇到了同样的问题。
务必致电
app.use( express.cookieParser() );
前
app.use(express.session({secret:'thisismysupersecret'}));