You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js类型错误:Cannot set properties of undefined (setting 'token') 解决咨询

问题原因分析

错误Cannot set properties of undefined (setting 'token')的核心原因是**req.session为undefined**,说明你的Express项目没有正确配置session中间件,导致请求对象中不存在session属性。

修复步骤
  1. 安装session依赖(未安装的话执行)
npm install express-session
# 或用yarn
yarn add express-session
  1. 在项目入口文件(如app.js)中配置session中间件,注意要放在所有路由定义之前:
const express = require('express');
const session = require('express-session');
const app = express();

// 配置session中间件
app.use(session({
  secret: 'your-custom-secret-key', // 替换为自己的安全密钥,用于签名session ID
  resave: false, // 仅当session内容变化时才保存,避免无效写入
  saveUninitialized: false, // 不保存未初始化的空session
  cookie: {
    secure: false, // 开发环境设为false,生产环境启用HTTPS后改为true
    maxAge: 86400000 // session有效期,这里设为1天(单位:毫秒)
  }
}));

// 之后再挂载你的业务路由
// app.use('/api', yourRouter);
  1. 确保登录路由在session中间件之后加载,这样请求到达登录逻辑时,req.session已经被初始化。
验证原有代码

配置完成后,你的登录代码就能正常存储login_id到session中:

else if (val[0].usertype == 'shop'){
  console.log("Login Succesfull");

  // store values in session
  var sessData = req.session;
  console.log(val[0].login_id);
  sessData.token = val[0].login_id;

  res.redirect('shop')
}else{
  res.redirect('login')
}

内容的提问来源于stack exchange,提问作者sankar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:35:17