实现跨域登录遇到的问题:无法设置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第三方模块

 

posted @ 2021-07-01 14:30  前端小白加油  阅读(314)  评论(0编辑  收藏  举报