【发布时间】:2020-12-01 17:53:42
【问题描述】:
我正在使用 sequelize 6。当我运行 findOrCreate().spread 时,它显示“findOrCreate(...).spread 不是函数”。这是我的代码:
const response = await Response.findOrCreate({
where: {
participantId,
questionId,
},
defaults: responseNewDetail,
})
return res.status(200).send({ status: 0, data: response })
这工作正常,但它没有将创建状态和模型值分开。 当我尝试使用传播时:
Response.findOrCreate({
where: {
participantId,
questionId,
},
defaults: responseNewDetail,
}).spread(function(response,created){
return res.status(200).send({ status: 0, data: response })
})
它说“Response.findOrCreate(...).spread 不是一个函数”。 这是模型文件(response.js):
const { Sequelize } = require("sequelize")
module.exports = (sequelize, DataTypes) =>
sequelize.define(
"Response",
{
responseId: {
type: DataTypes.INTEGER,
primaryKey: true,
allowNull: false,
field: "Response_ID",
autoIncrement: true,
},
companyId: {
type: DataTypes.INTEGER,
allowNull: false,
field: "Company_ID",
},
...
)
响应模型:
const ResponseModel = require("../models/response")
const Response = ResponseModel(sequelize, DataTypes)
有谁知道怎么回事?
【问题讨论】:
-
在你的第二个例子中,
.spread(),你还在用await Response.findOrCreate吗? -
如果可以的话,我希望使用 await 作为第一个。但这里的问题是
.spread()不是一个函数,我只想返回模型而不是包含创建的状态.我用的和stackoverflow.com/questions/53042399/…一样,但是没用。
标签: javascript node.js sequelize.js