gpt4 book ai didi

mysql - 得到 .findOrCreate() 错误

转载 作者:可可西里 更新时间:2023-11-01 06:34:37 25 4
gpt4 key购买 nike

我正在使用 Sequelize 作为 ORM。这是我的用户模型:

###
User model
###
User = exports.User = globals.sequelize.define "User",
username: globals.Sequelize.STRING
email:
type: globals.Sequelize.STRING
validate:
isEmail: true
hash: globals.Sequelize.STRING
salt: globals.Sequelize.STRING(512)
fname: globals.Sequelize.STRING
lname: globals.Sequelize.STRING
country: globals.Sequelize.STRING

我正在保存用户:

globals.models.User.findOrCreate
username: "johny"
password: "pass"
email: "johny93[###]example.com"
.success (user, created)->
console.log user.values
res.send 200
.error ->
console.log err # how to catch this?
res.send 502

如果电子邮件有效(电子邮件:“johny93@example.com”),一切正常。但是如果电子邮件验证失败(如上例所示),我会收到插入错误。如何捕获错误类型? .error 方法无法获取任何错误参数。

最佳答案

 User.findOrCreate({
where: {
username: "johny",
password: "pass",
email: "johny93[###]example.com"
},
defaults: {
//properties to be created
}
}).then(function(user){
var created = user[1];
user = user[0];
console.log(user.values);
}).fail(function(err){
console.log('Error occured', err);
});

https://github.com/sequelize/sequelize/wiki/Upgrading-to-2.0

编辑:正如@Domi 指出的那样,更好的方法是使用“传播”而不是“然后”

User.findOrCreate({
where: {
username: "johny",
password: "pass",
email: "johny93[###]example.com"
},
defaults: {
//properties to be created
}
}).spread(function(user, created){
console.log(user.values);
}).fail(function(err){
console.log('Error occured', err);
});

关于mysql - 得到 .findOrCreate() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19003148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com