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

Express服务器报错TypeError:无法读取undefined的'database'属性

错误排查与修复:TypeError: Cannot read properties of undefined (reading 'database')

错误根源

你的代码存在模块导出语法错误:Node.js中标准的模块导出写法是module.exports,但你在models/index.js和config/config.js里都写成了module.export(少了末尾的s)。这导致require('../config/config')返回的是undefined,自然无法读取config.db相关属性。

修复步骤

1. 修正配置文件导出语法

修改config/config.js中的导出语句:

module.exports = {
    port: process.env.PORT || 8081,
    db: {
        database: process.env.DB_NAME || 'tabtracker',
        user: process.env.DB_USER || 'tabtracker',
        password: process.env.PASS || 'tabtracker',
        options: {
            dialect: process.env.DIALECT || 'sqlite',
            host: process.env.HOST || 'localhost',
            storage: './tabtracker.sqlite'
        }
    }
}

2. 修正models文件导出语法

修改server/src/models/index.js末尾的导出语句:

const fs = require('fs')
const path = require('path')
const Sequelize = require('sequelize')
const config = require('../config/config')
const db = {}

const sequelize = new Sequelize(
    config.db.database,
    config.db.user,
    config.db.password,
    config.db.options
)

fs
    .readdirSync(__dirname)
    .filter((file) => file !== 'index.js')
    .forEach((file) => {
        const model = sequelize.import(path.join(__dirname, file))
        db[model.name] = model
    })

db.sequelize = sequelize
db.Sequelize = Sequelize

module.exports = db

额外验证建议

可以在models/index.js的const config = require('../config/config')后添加一行日志,确认配置是否正确加载:

console.log('Loaded config:', config)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:03:15