Where to handle the error in a sequelize ORM query statement?

If you want to handle the specific error, attach a .catch handler

models.Item.create({
  title : req.body.title,
  UserId : req.body.UserId
}).then(function(item){
  res.json({
    "Message" : "Created item.",
    "Item" : item
  });
}).catch(function (err) {
  // handle error;
});

If you want to handle errors more generally (i.e. show a nice error message, instead of killing your server, you might want to have a look at unhandledexception

https://nodejs.org/api/process.html#process_event_uncaughtexception

If you are using express, it also contains some error handling facilities http://expressjs.com/en/guide/error-handling.html


You can handle all ORM errors to return an HTTP 500 status and some default error message by doing something like below

router.use((error, request, response, next) => {
  response.status(error.status || 500).json({
    status: 'error',
    error: {
      message: error.message || serverErrorMsg,
    },
  });
});

The above code also allows you to throw errors with custom messages that will be sent to the client by passing the error to the next function

const error = new Error(/* your error message */);
error.status = 409;
next(error);