从文件中序列化6个导入模型 [英] Sequelize 6 import models from file
本文介绍了从文件中序列化6个导入模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想知道如何使用Sequelize 6从文件中导入模型?
它与";Sequelize";:^5.22.0";一起使用, ";Sequelize-cli";:";^5.5.1";,但我使用Sequelize 6出错。目前,我有这个:
数据库/设置/数据库连接.js
// Imports
import { Sequelize } from "sequelize"
const connection = new Sequelize(
process.env.DATABASE_NAME,
process.env.DATABASE_USER,
process.env.DATABASE_PASSWORD,
{
host: process.env.DATABASE_URL,
port: process.env.DATABASE_PORT,
dialect: "mysql",
logging: false,
define: {
// prevent sequelize from pluralizing table names
freezeTableName: true,
},
}
)
// Test connection
console.info("SETUP - Connecting database...")
connection
.authenticate()
.then(() => {
console.info("INFO - Database connected.")
})
.catch((err) => {
console.error("ERROR - Unable to connect to the database:", err)
})
export { connection as default }
数据库/模型/index.js
// Imports
import Sequelize from "sequelize"
// App Imports
import connection from "../setup/databaseConnection"
const models = {
Language: connection.import("./language"),
}
Object.keys(models).forEach((modelName) => {
if ("associate" in models[modelName]) {
models[modelName].associate(models)
}
})
models.sequelize = connection
models.Sequelize = Sequelize
export { models as default }
数据库/模型/语言.js
module.exports = (sequelize, DataTypes) => {
const Language = sequelize.define(
"language",
{
/* id : {
primaryKey: true,
type : DataTypes.INTEGER
}, */
name: {
type: DataTypes.STRING,
},
code: {
type: DataTypes.STRING,
},
is_active: {
type: DataTypes.BOOLEAN,
},
},
{}
)
Language.associate = function (models) {
// Language has Many Bucket
models.Language.hasMany(models.Bucket, {
foreignKey: "id",
})
}
return Language
}
但我有此错误:
formation-api/database/models/index.js:17
Language: _databaseConnection["default"]["import"]("./language")
^
TypeError: _databaseConnection.default.import is not a function
at Object.<anonymous> (/Users/jeremiechazelle/Sites/api/database/models/index.js:8:15)
at Module._compile (internal/modules/cjs/loader.js:1147:30)
at Module._compile (/Users/jeremiechazelle/Sites/api/node_modules/pirates/lib/index.js:99:24)
at Module._extensions..js (internal/modules/cjs/loader.js:1167:10)
at Object.newLoader [as .js] (/Users/jeremiechazelle/Sites/api/node_modules/pirates/lib/index.js:104:7)
at Module.load (internal/modules/cjs/loader.js:996:32)
at Function.Module._load (internal/modules/cjs/loader.js:896:14)
at Module.require (internal/modules/cjs/loader.js:1036:19)
at require (internal/modules/cjs/helpers.js:72:18)
at Object.<anonymous> (/Users/jeremiechazelle/Sites/api/resolvers/Queries/User.js:2:1)
[nodemon] app crashed - waiting for file changes before starting...
我使用:
续订(&Q;):^6.1.0&Q;,
";Sequelize-cli";:";^6.0.0";
推荐答案
如下:
import Sequelize from 'sequelize'
import userModel from './user'
import messageModel from './message'
const sequelize = new Sequelize(process.env.DATABASE, process.env.DATABASE_USER, process.env.DATABASE_PASSWORD, {
dialect: 'postgres'
})
const models = {
User: userModel(sequelize, Sequelize.DataTypes),
Message: messageModel(sequelize, Sequelize.DataTypes)
}
这篇关于从文件中序列化6个导入模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文