【发布时间】:2016-09-06 21:28:26
【问题描述】:
我的错误类似于这个post:
使用 sequelize.js 作为 ORM 处理程序。 queryCondition 变量值:{where: {$or: [{username:user.username},{email:user.email}]},defaults:user}
问题:成功将用户实例保存到数据库后,调用findOrCreate() 后按推荐调用spread()。 spread() 中的功能块被调用,然后在.catch() 块被调用之后立即被调用。不知道为什么会这样。有人可以帮忙吗?
model.User.findOrCreate(queryCondition).spread(function(user, created){
callback && callback(user, created);
}).catch(function(error){
callback && callback(null, null, error);
});
【问题讨论】:
-
您可以在您的问题中输入 queryCondition 变量吗?
-
{where: {$or: [{username:user.username}, {email:user.email}]},defaults:user}
-
听起来您的
callback确实引发了异常。error是什么? -
对于此类情况,您需要使用
then(onFulfilled, onRejected)pattern 而不是.then(…).catch(…)。或者,鉴于 Sequelize 使用 Bluebird,请查看asCallback(尽管它使用节点回调约定,而不是您的自定义参数顺序)。 -
没有错误。数据插入成功,但 .catch() 块在之后立即执行
标签: javascript node.js sequelize.js