Node/ExpressでSequelize ORMを使用しています。
UserとItemという2つのテーブルがあります。アイテムには、UserIdにリンクされた外部キーがあります。
無効な(Usersテーブルに存在しない)UserIdでアイテムを作成しようとすると、「SequelizeForeignKeyConstraintError」がスローされ、未処理のためにアプリケーションがクラッシュします。
私が持っている問題はこれです:
エラーはどこで処理しますか?
これが私のコードです。
.post(function(req,res){
models.Item.create({
title : req.body.title,
UserId : req.body.UserId
}).then(function(item){
res.json({
"Message" : "Created item.",
"Item" : item
});
});
});
特定のエラーを処理する場合は、.catch
ハンドラー
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;
});
エラーをより一般的に処理する場合(つまり、サーバーを強制終了する代わりにNiceエラーメッセージを表示する場合は、unhandledexceptionを確認することをお勧めします。
https://nodejs.org/api/process.html#process_event_uncaughtexception
エクスプレスを使用している場合は、いくつかのエラー処理機能も含まれています http://expressjs.com/en/guide/error-handling.html