gpt4 book ai didi

javascript - Sequelize.define 无法将可选对象合并到模型构造函数中

转载 作者:行者123 更新时间:2023-12-01 00:15:39 25 4
gpt4 key购买 nike

我正在 mock 一个用express和sequelize.js构建的简单消息服务尝试使用sequelize.define("Model", Desc, Opt) 语法。但是,无法为 Model 对象加载 Opt 参数中的其他类方法。您是否有任何想法让这些对象具有使用 Opt json 指定的附加方法? (在下面的示例中名为同事)

我使用了node v10.16.0和sequelize@5.21.3。

引用号:https://sequelize.org/master/class/lib/sequelize.js~Sequelize.html#instance-method-define

我的代码和相应的错误消息:

  const Messages = sequelize.define("Messages", {
id: {
type: DataType.INTEGER,
primaryKey: true,
autoIncrement: true
},
place: {
type: DataType.STRING,
allowNull: false,
validate: {
notEmpty: true
}
},
message: {
type: DataType.STRING,
allowNull: false,
defaultValue: false
}
}, {
classMethods: {
associate: (models) => {
Messages.belongsTo(models.Users);
}
}
});

console.log(typeof Messages);
console.log(Messages);
console.log(typeof Messages.associate);
console.log(Messages.associate);
> app1@1.0.0 start /home/neko/PJDir/app1
> node app.js

consign v0.1.6 Initialized in /home/neko/PJDir/app1
+ ./libs/config.js
+ ./db.js
+ ./models/messages.js
+ ./models/users.js
+ ./libs/middlewares.js
+ ./routes/index.js
+ ./routes/message.js
+ ./libs/boot.js
function
Messages
undefined
undefined
/home/neko/PJDir/app1/db.js:34
db.models[key].associate(db.models);
^

TypeError: db.models[key].associate is not a function
at Object.keys.forEach.key (/home/neko/PJDir/app1/db.js:34:22)
at Array.forEach (<anonymous>)
at Function.module.exports.app (/home/neko/PJDir/app1/db.js:32:28)
at Consign.into (/home/neko/PJDir/app1/node_modules/consign/lib/consign.js:240:17)
at Object.<anonymous> (/home/neko/PJDir/app1/app.js:12:4)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:829:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! app1@1.0.0 start: `node app.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the app1@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

最佳答案

尝试这样的事情

const Messages = sequelize.define('Messages', {
id: {
type: DataType.INTEGER,
primaryKey: true,
autoIncrement: true
},
place: {
type: DataType.STRING,
allowNull: false,
validate: {
notEmpty: true
}
},
message: {
type: DataType.STRING,
allowNull: false,
defaultValue: false
}
}, {
tableName: 'messages'
})

Messages.associate = function (models) {
Messages.belongsTo(models.Users);
Messages.hasMany(/* other relations */);
}

关于javascript - Sequelize.define 无法将可选对象合并到模型构造函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59783401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com