首先 在app.js中
//加载cookies模块 var Cookies = require('cookies');
再对cookies进行相关设置
//设置cookie app.use( function(req, res, next) { req.cookies = new Cookies(req, res); //解析登录用户的cookie信息 req.userInfo = {}; if (req.cookies.get('userInfo')) { try { req.userInfo = JSON.parse(req.cookies.get('userInfo')); //获取当前登录用户的类型,是否是管理员 User.findById(req.userInfo._id).then(function(userInfo) { req.userInfo.isAdmin = Boolean(userInfo.isAdmin); next(); }) }catch(e){ next(); } } else { next(); } } );
在api.js下的cookies的操作:
/* * 登录 * */ router.post('/user/login', function(req, res) { var username = req.body.username; var password = req.body.password; if ( username == '' || password == '' ) { responseData.code = 1; responseData.message = '用户名和密码不能为空'; res.json(responseData); return; } //查询数据库中相同用户名和密码的记录是否存在,如果存在则登录成功 User.findOne({ username: username, password: password }).then(function(userInfo) { if (!userInfo) { responseData.code = 2; responseData.message = '用户名或密码错误'; res.json(responseData); return; } //用户名和密码是正确的 responseData.message = '登录成功'; responseData.userInfo = { _id: userInfo._id, username: userInfo.username } req.cookies.set('userInfo', JSON.stringify({ _id: userInfo._id, username: userInfo.username })); res.json(responseData); return; }) });