javascript - 为什么我的后端不更新数据库中的关键字数据列

标签 javascript node.js sequelize.js

我的想法是能够在 keyword 中添加多个字符串,我被告知要使用外键,我也是。但我不知道为什么它不能正常工作。有任何想法吗?
我的代码如下
用户.js

var User = sequelize.define('user', {
  username: Sequelize.STRING,
  myhash: Sequelize.TEXT,
  mysalt: Sequelize.STRING,
  keyword: Sequelize.STRING
});

var keywordData = sequelize.define('keywordData', {
  keywords: Sequelize.STRING
})

User.hasMany(keywordData)
keywordData.belongsTo(User)
用户.js
router.post("/newkeyword", function(req, res) {
  keywordData.update(
    {keywordData: req.body.newkeyword},
    {where: {id: req.user['id']}}
  )
})

最佳答案

您忘记在第二个关联定义中指定 foreignKey 选项,并为 keywordData 模型创建自动增量 ID。

var keywordData = sequelize.define('keywordData', {
  id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true, },
  keywords: { Sequelize.STRING }
})
因此,您的关联应该是这样的:
User.hasMany(keywordData)
keywordData.belongsTo(User, {foreignKey: 'keyword', targetKey: 'keywords' })
你也可以引用这个 document 了解更多细节。

关于javascript - 为什么我的后端不更新数据库中的关键字数据列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62514035/

相关文章:

node.js - 如何在运行express js服务器时使用forever

node.js - 另一个 Promise 问题 - 嵌套的 Sequelize 调用?

javascript - 在组件外使用 VueI18n 的问题

javascript - 对象如何使用 setter 覆盖自身?

javascript - 在对象外部执行 onclick 操作

javascript - 在二级链接中循环信息

javascript - 在 Vue.js 3 中添加全局变量

javascript - 如何使用 JavaScript 正则表达式获取 html 标签属性值?

mysql - Sequelize - 如何在模型中定义触发器?

javascript - 有没有办法阻止 sequelize sync() 添加特定的外键?