【发布时间】:2021-08-07 01:17:20
【问题描述】:
我有一个复杂的任务要做。我需要将我的续集模型分隔在模型文件夹内的单独文件夹中,就像这样的结构:
├── node_modules
├── src
| └── models
| ├──settings
| | ├── user.js
| | └── location.js
| ├──stock
| | ├── stock.js
| | └── products.js
| └── index.js
今天,我将所有模型与 index.js 一起放在模型根文件夹中,这样我就可以将控制器中的每个模型都称为
const { users, stock } = require("../../models")
index.js里面的代码是这样的:
"use strict"
const fs = require("fs")
const path = require("path")
const Sequelize = require("sequelize")
const basename = path.basename(__filename)
const env = process.env.NODE_ENV || "development"
const envConfigs = require("../config/config")
const config = envConfigs[env]
const db = {}
let sequelize
if (config.url) {
sequelize = new Sequelize(config.url, config)
} else {
sequelize = new Sequelize(
config.database,
config.username,
config.password,
config
)
}
fs.readdirSync(__dirname)
.filter((file) => {
return (
file.indexOf(".") !== 0 && file !== basename && file.slice(-3) === ".js"
)
})
.forEach((file) => {
const model = require(path.join(__dirname, file))(
sequelize,
Sequelize.DataTypes
)
db[model.name] = model
})
Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db)
}
})
db.sequelize = sequelize
module.exports = db
这是使用 sequelize-cli 自动创建的。
我认为我需要在 index.js 中进行一些搜索,并将文件夹和文件连接到 index.js 中的模型变量中,这样我就可以使用“model.settings.user”之类的模型来进行关联或调用控制器中的对象。
【问题讨论】:
-
我阅读了这篇文章stackoverflow.com/questions/32546148/…,但我无法为我的项目工作(这可能是因为续集版本发生了变化)
-
你遇到了什么错误?
标签: javascript node.js sequelize.js