Node.js req.session 变量未定义
Node.js req.session variable undefined
main.js(仅相关部分)
var express = require('express');
var app = require('express')(),
expressSession = require('express-session'),
cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
// Create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })
// Access Middleware
var connect = require('connect');
var http = require('http');
var session = require('express-session');
app.use(express.static('public'));
app.use(expressSession({
secret: 'SECKEY',
resave: true,
saveUninitialized: true
}));
app.post('/process_post', urlencodedParser, function (req, res) {
// Prepare output in JSON format
var response = {
first_name:req.body.first_name,
last_name:req.body.last_name
};
console.log(response);
var post = req.body;
if(post.first_name === 'u' && post.last_name === 'p') {
res.session.user_id = 3;
res.redirect('/home');
} else {
res.send('INVALID');
}
res.end(JSON.stringify(response));
});
这是我得到的错误:
TypeError: Cannot set property 'user_id' of undefined
at D:'Users'Winston'Code'NodeJS Projects'Sample'main.js:43:29
at Layer.handle [as handle_request] (D:'Users'Winston'Code'NodeJS Projects'Sample'node_modules'express'lib'router'layer.js:95:5)
at next (D:'Users'Winston'Code'NodeJS Projects'Sample'node_modules'express'lib'router'route.js:131:13)
at D:'Users'Winston'Code'NodeJS Projects'Sample'node_modules'body-parser'lib'read.js:121:5
at invokeCallback (D:'Users'Winston'Code'NodeJS Projects'Sample'node_modules'body-parser'node_modules'raw-body'index.js:262:16)
at done (D:'Users'Winston'Code'NodeJS Projects'Sample'node_modules'body-parser'node_modules'raw-body'index.js:251:7)
at IncomingMessage.onEnd (D:'Users'Winston'Code'NodeJS Projects'Sample'node_modules'body-parser'node_modules'raw-body'index.js:308:7)
at IncomingMessage.emit (events.js:104:17)
at _stream_readable.js:908:16
at process._tickCallback (node.js:355:11)
req.session不起作用,但我想我定义了一切。我已经安装了连接和快速会话中间件。将来如何调试此类问题?
编辑1:打印出要求会话
{ cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true } }
{ first_name: 'u', last_name: 'p' }
{ cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true } }
你叫res.session
不是req.session
你在下面更改你的代码:
res.session.user_id = 3;
自
req.session.user_id = 3;
相关文章:
- Javascript变量未定义,onchange不起作用
- 定义的变量未定义
- 无法弄清楚为什么本机 Promise 变量未定义
- Windows 8 Javascript 疯狂 - 变量未定义
- $rootScope变量未定义
- 变量未定义
- Javascript:TypeError变量未定义
- 变量未定义/超出范围
- javascript变量未定义
- Javascript变量未定义错误
- $scope变量未定义,尽管它是在$watch函数内部设置的
- 类型错误:变量未定义
- AngularJs $http变量未定义
- JQuery:创建扩展返回变量未定义
- d3.js变量未定义,但在Firefox控制台中,它可以工作
- Javascript 中用于上传表单数据的变量未定义
- 节点.js模块级变量未定义
- Node.js req.session 变量未定义
- 错误:AngularJs 变量未定义,当使用 grunt 运行时.(泽泽尔)
- 将字符串拆分为两个变量 - 未定义不是一个函数