Gle*_*enn 2 javascript node.js sequelize.js
为什么在我的某些模型中,sequelize WON\xe2\x80\x99T 为foreignkey创建一个新列?但它确实为其他模型创建了???它\xe2\x80\x99s令人沮丧和奇怪。例如,在此 User 模型中,sequelize won\xe2\x80\x99t create role_id。
\'use strict\';\nmodule.exports = (sequelize, DataTypes) => {\n const User = sequelize.define(\'User\', {\n id: { type: DataTypes.BIGINT, allowNull: false, autoIncrement: true, unique: true, primaryKey: true },\n first_name: DataTypes.STRING,\n last_name: DataTypes.STRING\n }, {});\n User.associate = function(models) {\n User.belongsTo(models.Role, { foreignKey: \'role_id\' });\n };\n return User;\n};\nRun Code Online (Sandbox Code Playgroud)\n\n这是一个类似的问题:Sequelize not 创建模型关联列但是!没有得到答复。
\n\n我花了几个小时在这上面,我做了如下的事情:
\n\nNewUser。有用!但同样没有User名字。在这个 Stackoverflow 问题之后,我会从他们的 Github 的问题页面寻求帮助。
\n\n我想我可以只定义列role_id而不是通过associate函数添加它。
所有模型都应该在一个地方注册,只要它们的关联:
数据库.js
const fs = require('fs')
const path = require('path')
const Sequelize = require('sequelize')
const db = {}
const models = path.join(__dirname, 'models') // correct it to path where your model files are
const sequelize = new Sequelize(/* your connection settings here */)
fs
.readdirSync(models)
.filter(function (file) {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js')
})
.forEach(function (file) {
// Sequelize version <= 5.x
var model = sequelize['import'](path.join(models, file))
// Sequelize version >= 6.x
// var model = require(path.join(models, file))(
// sequelize,
// Sequelize.DataTypes
// );
db[model.name] = model;
})
Object.keys(db).forEach(function (modelName) {
if (db[modelName].associate) {
db[modelName].associate(db)
}
})
db.Sequelize = Sequelize // for accessing static props and functions like Op.or
db.sequelize = sequelize // for accessing connection props and functions like 'query' or 'transaction'
module.exports = db
Run Code Online (Sandbox Code Playgroud)
一些_模块.js
const db = require('../database')
...
const users = await db.user
.findAll({
where: {
[db.Sequelize.Op.or]: [{
first_name: 'Smith'
}, {
last_name: 'Smith'
}]
}
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15856 次 |
| 最近记录: |