我的快速服务器给了我错误: C:.........\server\src\models\index.js:8 config.db.database,^
TypeError:无法在对象上读取未定义的属性(读取“数据库”)。(C:\Users\1\Documents\GitHub\GFS\server\src\models\index.js:8:15) at Module._compile (节点:内部/模块/cjs/加载程序:1103:14),在Object.Module._extensions..js (节点:内部/模块/cjs/加载程序:1155:10)在Function.Module._load (节点:Function.Module._load(节点:内部/模块/cjs/加载程序:822:12))(节点:Function.Module._load(节点:Module._compile/模块/cjs/加载程序:981:32)。内部/模块/cjs/加载程序:1005:19)(节点:内部/模块/cjs/帮助程序:102:18)。(C:\Users\1\Documents\GitHub\GFS\server\src\app.js:5:22) at Module._compile (节点:内部/模块/cjs/加载程序:1103:14),Object.Module._extensions..js (节点:内部/模块/cjs/加载程序:1155:10)
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.export = db
下面是配置文件
module.export = {
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'
}
}
}
发布于 2022-08-22 15:15:18
从错误消息中可以很清楚地看出这是config变量的一个问题。config.db被读为未定义。
我要做的第一件事是确认需求“./config/config”上的路径是否正确。如果是,那么这几乎肯定是某种语法问题。我从未使用过语法"module.export",一直是"module.exports“。这似乎不太可能是问题所在,我知道有多种方法可以完成导出。
我很想看看你是否在第6行做了一个console.log(config)的打印。似乎您可以通过查看这是一个不完整的对象还是未定义的对象来关注这个问题。
https://stackoverflow.com/questions/73447190
复制相似问题