Хотите проверить исключение или причину сбоя от sequelize ORM - PullRequest
0 голосов
/ 24 августа 2018

Мне нужен некоторый механизм в nodeJS (экспресс), который может проверять наличие ошибок при манипулировании записью в базе данных MySQL с помощью секвелирования ORM.например:

sequelize.create({ 
    name: req.body.name,
    email: req.body.email })
.then((data)=> { res.send('mysuccess message'); })
.catch( (err) => { 
    if( <unique key is violated> ) { 
        res.send('myerrormessage');
    }
}));

Спасибо всем.

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Sequelize предоставляет классы ошибок, которые вы можете проверить в блоке catch

http://docs.sequelizejs.com/class/lib/errors/index.js~UniqueConstraintError.html

sequelize.create({ 
    name: req.body.name,
    email: req.body.email })
.then((data)=> { res.send('mysuccess message'); })
.catch(Sequelize.UniqueConstraintError => {  
    res.send('myerrormessage');
}));

Если вы хотите использовать версию try ... catch, вы не можете накапливать блоки catch, поэтому вы можете проверить с помощью

if (err instanceof Sequelize.UniqueConstraintError)
0 голосов
/ 24 августа 2018

Вот, пожалуйста,

sequelize.query используется всеми запросами в sequelize, поэтому, возможно, вы могли бы перезаписать это и прикрепить обработчик ошибок:

Sequelize.prototype.query = function () {
  return originalQuery.apply(this, arguments).catch(function (err) {
    // log the error 

    throw err;
  });
};

Для более подробной информации: ЧИТАЙТЕ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...