Node.js 在Sequelize中使用事务保存关联模型
我有一个Node.js 在Sequelize中使用事务保存关联模型,node.js,sequelize.js,Node.js,Sequelize.js,我有一个User模型,它有两个字段User\u name和password 用户有两个关联。一个带有PersonalDetail型号,另一个带有UserRole型号。 我想在这三个表中插入数据。如果插入失败,则不应在任何表中插入任何数据。 为此,我使用了sequelize事务
User
模型,它有两个字段User\u name
和password
用户
有两个关联。一个带有PersonalDetail
型号,另一个带有UserRole
型号。我想在这三个表中插入数据。如果插入失败,则不应在任何表中插入任何数据。
为此,我使用了
sequelize事务
<但是我得到了以下错误
TypeError:sequelize.transaction不是函数
注册时(C:\Users\sujee\Desktop\onirique\Users\src\services\register.js:21:15)
在router.post(C:\Users\sujee\Desktop\onirique\Users\src\routes\register.js:16:32)
Register.js
首先,在这种情况下,您不需要交易。这是因为如果创建
personaldail
或UserRole
失败,则User
将不创建
至于你得到的错误。您不能在sequelize模块本身上调用sequelize.transaction()。应在使用sequelize进行的数据库连接实例上调用此函数
const Sequelize = require('sequelize')
const sequelize = new Sequelize(DB_NAME, DB_USERNAME, DB_PASSWORD, { ...options })
Sequelize.transaction() // invalid, not a function
sequelize.transaction() // valid, because sequelize is an instance of Sequelize connected to db
const Sequelize = require('sequelize')
const sequelize = new Sequelize(DB_NAME, DB_USERNAME, DB_PASSWORD, { ...options })
Sequelize.transaction() // invalid, not a function
sequelize.transaction() // valid, because sequelize is an instance of Sequelize connected to db