Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在Sequelize中使用事务保存关联模型_Node.js_Sequelize.js - Fatal编程技术网

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