微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

实现跨域登录遇到的问题:无法设置session

今天在准备实现跨域登录,在后台/login路由中登录成功节点设置req.session.username = user.username,运行失败。

代码如下:

 1 // 跨域登录案例
 2 app.post('/login', (req, res) => {
 3     // 调用formidable下的IncomingForm构造函数创建表单解析实例化对象form
 4     var form = new formidable.IncomingForm();
 5     // 模拟数据库
 6     var obj = {
 7         username: 'canjia',
 8         password: 123456
 9     };
10     // 调用form下的parse()方法解析前端传的表单数据
11     form.parse(req, (err, fields, files) => {
12         const { username, password } = fields;
13         if (username == obj.username && password == obj.password) {
14             // 在ajax发送的请求的session对象中加入username属性
req.session.username = username; 15 res.send('登录成功'); 16 return; 17 } else { 18 res.send('用户名或者密码错误') 19 } 20 }) 21 })

 

前端报错:POST http://localhost:3002/login net::ERR_CONNECTION_RESET,

后端报错:

D:\WEB前端\案例\Ajax\server2\app.js:56
req.session.username = user.username;
^

ReferenceError: user is not defined
at form.parse (D:\WEB前端\案例\Ajax\server2\app.js:56:36)
at IncomingForm.<anonymous> (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:107:9)
at IncomingForm.emit (events.js:182:13)
at IncomingForm._maybeEnd (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:557:8)
at MultipartParser.parser.onEnd (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:426:10)
at callback (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\multipart_parser.js:102:31)
at MultipartParser.write (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\multipart_parser.js:268:15)
at IncomingForm.write (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:159:34)
at IncomingMessage.<anonymous> (D:\WEB前端\案例\Ajax\node_modules\formidable\lib\incoming_form.js:125:12)
at IncomingMessage.emit (events.js:182:13)
[nodemon] app crashed - waiting for file changes before starting...

 

经过百度后,发现问题是出在没有引入express下的session第三方模块

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐