无法在node.js中使用会话

我正在开发login页面。
如果用户成功login,那么我想将user_Id存储到会话variables中,我将用它来authentication其他页面。

App.js

var express = require('express'); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); var passport = require('passport'); var cookieParser = require('cookie-parser'); var session = require('express-session'); app.use(bodyParser.json()); app.use('/user', userRoutes); app.use('/', index); app.use(cookieParser()); app.use(session({ secret: "helloKey", resave: false, saveUninitialized: true, store: new MongoStore({ mongooseConnection: mongoose.connection}), cookie: { maxAge: 180 * 60 * 1000 } })); 

用户路由器

 var express = require('express'); var router = express.Router(); User = require('../models/user'); //Login User router.post('/login', function (req, res) { var user = new User(req.body); User.login(user, function (err, user) { if (err) { res.sendStatus(500); throw err; } if (!user) { res.sendStatus(404); return; } req.session.name = user.id; res.json(user.id); }); }); 

问题是如果我执行此代码我正在获取无法设置未定义的属性“名称”
我做错了什么?
请帮忙。

问题是你的路线已经设置在会议之前,所以你必须重新sorting的代码。 移动这些线

 app.use('/user', userRoutes); app.use('/', index); 

在app.use(session)声明下面。

 app.use(session({ secret: "helloKey", resave: false, saveUninitialized: true, store: new MongoStore({ mongooseConnection: mongoose.connection}), cookie: { maxAge: 180 * 60 * 1000 } }))