Wei*_*uan 3 node.js sequelize.js
我有两个模型 User 和 Post,定义关联模型如下:
Post.belongsTo(models.User)
Run Code Online (Sandbox Code Playgroud)
这意味着Post模型属于User并且User有很多Post。因此数据库中的 posts 表必须具有用于此关联的键 userId。
我使用以下代码创建分配给用户的帖子:
Post.create({
UserId: 1,
})
Run Code Online (Sandbox Code Playgroud)
它将把正确的数据插入数据库。
但当我更改代码时它不起作用:
Post.create({
userId: 1,
})
Run Code Online (Sandbox Code Playgroud)
为什么模型使用大写 UserId 而不是 userId ?
当您未在模型上定义列时,将使用模型名称并Id在末尾添加 来生成关联字段。您可以将模型名称定义为小写,或定义外部字段,如下所示:
module.exports = (sequelize, DataTypes) => {
const Post = sequelize.define('Post', {
//
userId: { //this is how you are going to use it on sequelize
field: 'user_id', // this is how is goig to save it on the db, underscore for example
type: DataTypes.DATE
},
});
Post.associate = (models) => {
Post.belongsTo(models.User, { as: 'User', foreignKey: 'user_id' });
};
return Post;
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3347 次 |
| 最近记录: |