7

私はSequelizeORMとして使用しています。ここに私のユーザーモデルがあります:

###
    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メソッドはエラー パラメータを取得できません。

4

3 に答える 3

4

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);
});
于 2015-02-10T17:16:32.340 に答える