得到.findOrCreate()错误
我使用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”),一切都很好。 但是,如果电子邮件validation失败(如上例),我得到一个插入错误。 如何捕捉错误types? .error
方法不能获取任何错误参数。
sequelize会将错误作为parameter passing给错误函数。
JavaScript :
User.findOrCreate({username: "johny",password: "pass",email: "johny93[###]example.com"}) .success(function(user, created){ console.log(user.values); res.send(200); }) .error(function(err){ console.log('Error occured' + err); })
CoffeScript :
globals.models.User.findOrCreate username: "johny" password: "pass" email: "johny93[###]example.com" .success (user, created)-> console.log user.values res.send 200 .error (error)-> console.log error # how to catch this? res.send 502
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); });
Sequelize 2.0更改语法,现在是
User.findOrCreate({ where: { username: 'johny', password: 'pass', email: 'johny93[###]example.com' } }).then(function (user) { res.send(200); }).catch(function (err) { console.log(err); res.send(502); });
- 使用ejs组件将数据从js发送到html
- nodejs和mysql连接失败?
- Node Js + MySql + Express – app.use(bodyParser()); 没有定义 – 错误build立连接到新的SQL方法
- 如何使用mysql包得到nodejs的结果?
- 如何连接节点Sequelize到亚马逊RDS MySQL与多可用区
- NodeJS,将数据存储在MySQL和PostgreSQL的SQLite中
- 我怎样才能批量删除使用knexjs(MySQL)。 我有一个匹配单个字段的数组中的条目
- 使用node.js保存数据库中的xml文件文本
- 我应该何时打开/closures与数据库的连接? (MariaDB / node.js)