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

Express.js中Passport会话存储配置报错(Sequelize+PostgreSQL)

Express.js 中使用 Passport + Sequelize 配置会话时的类型错误问题

错误信息

An error occurred for attribute sid on model Session.
[cause]: TypeError: Expected type to be a string, a DataType class, or a DataType instance, but got STRING {
options: { length: 36, binary: undefined },
_binary: undefined,
_length: 36

相关代码

app.js 代码

// passport
const passport = require('./config/auth/passport');
const session = require('express-session');
const SequelizeStore = require('connect-session-sequelize')(session.Store);
const { sequelize } = require('./config/database'); // Adjust the path to your Sequelize instance
const Session = require('./modules/auth/models/session'); // Adjust the path to your Session model


app.use(session({
    secret: process.env.SESSION_SECRET,
    resave: false,
    saveUninitialized: false,
    cookie: {
        //secure: process.env.NODE_ENV === "production",
        maxAge: 24 * 60 * 60 * 1000, // 24 hours
    },
    store: new SequelizeStore({
        db: sequelize,
        tableName: 'Session',
        checkExpirationInterval: parseInt(process.env.SESSION_EXPIRATION_INTERVAL, 10),
        expiration: parseInt(process.env.SESSION_EXPIRATION, 10)
    }),
}));

session.js 模型代码

const { DataTypes } = require('@sequelize/core');
const { sequelize } = require('../../../config/database');

const Session = sequelize.define('Session', {
    sid: {
        type: DataTypes.STRING(36),
        primaryKey: true,
        allowNull: false,
    },
    expires: {
        type: DataTypes.DATE,
        allowNull: false,
    },
    data: {
        type: DataTypes.STRING(50000),
        allowNull: false,
    },
}, {
    tableName: 'Session', // Custom table name
    timestamps: true, // Includes createdAt and updatedAt
});

module.exports = Session;

已尝试的方案

  • 注释掉 store 配置后,应用可正常启动
  • 将 sid 字段类型改为 DataTypes.STRING,问题未解决
  • 确认启动前数据库中不存在 Session 表
  • 删除 Session 模型并手动创建同结构表,问题仍存在

恳请各位提供解决方案,谢谢!

内容的提问来源于stack exchange,提问作者Minh Nguyễn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 20:37:39