快速会话 无法设置未定义的属性“id”
express session Cannot set property 'id' of undefined
var redis = require('redis');
var router = express.Router();
var mysql = require('mysql');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var client = redis.createClient();
var session = require('express-session'),
RedisStore = require('connect-redis')(session);
var app = express();
app.use(cookieParser);
app.use(session({
store : new RedisStore({
host:'localhost',
port:7351,
maxAge: 300000,
client:client,
ttl:260
}
),
secret:'dafdsa',
resave:false,
saveUninitialized:true,
}));
这是我的设置,这是我的代码
router.post('/', function(req, res, next) {
var id = req.body.userid;
var passwd = req.body.password;
var sess = req.session;
var login_chk = pool.getConnection(function(err,connection){
connection.query('SELECT U_passwd FROM Member WHERE U_id = ?',[id],function(err,row,req){
if(err)console.log(err);
var sqlpasswd = row[0].U_passwd;
var answer = 0;
answer = passwd_chk(passwd,sqlpasswd);
if(answer ===1){
save_session(id);
res.render('main');
}
var save_session = function(req){
req.session.id = req;
}
我将发布(登录)并将ID保存在会话中,但此代码总是错误地无法设置属性...我该如何解决它?...谢谢你的回答
发生这种情况
是因为您将userId
作为save_session(req)
参数传递。然后,您在您的情况下执行与userId.session.id = userId;
相同的req.session.id = req;
。该错误会通知您userId
没有session
属性(痴迷)。您所需要的只是传递req
和userId
作为参数。像这样更改代码。
router.post('/', function(req, res, next) {
var id = req.body.userid;
var passwd = req.body.password;
var sess = req.session;
var login_chk = pool.getConnection(function(err,connection){
connection.query('SELECT U_passwd FROM Member WHERE U_id = ?',[id],function(err,row,req){
if(err)console.log(err);
var sqlpasswd = row[0].U_passwd;
var answer = 0;
answer = passwd_chk(passwd,sqlpasswd);
if(answer ===1){
save_session(req,id); <--- Change this
res.render('main');
}
var save_session = function(req,id){ <--- Change this
req.session.id = id; <--- Change this
}
我希望它有所帮助。
相关文章:
- Javascript复选框函数:;缺少:在属性id之后"
- 语法错误:缺少:在属性 ID 之后
- 如何使用Google Embed API获取选定的帐户ID和属性ID
- 快速会话 无法设置未定义的属性“id”
- 无法读取属性id成员路由
- 如何以编程方式获取属性Id、视图Id和帐户Id
- SyntaxError:属性id后缺少:
- JSON到带有Django的JS:SyntaxError:缺少:在属性id之后
- Angular JS TypeError:无法读取路由上未定义的属性“id”
- 在 IE8 之前替换了属性(“id”)
- 无效的属性 ID
- 在为 jquery 自动完成设置源代码时获取“语法错误:缺少:在属性 ID 之后”
- 如何根据属性 ID 获取内部 html
- j查询错误 - 语法错误:缺少:在属性 ID 之后
- 缺少解析错误:在属性 ID 之后
- Jquery:检查属性 id 是否有特定的模式
- 属性ID后缺少冒号,Firebase
- Dojo确认对话框'缺少:在属性id'之后;和'找不到节点'
- jQuery)SyntaxError:缺少:在属性id之后)
- Jquery获取最近一次单击的属性ID