2016-01-08 195 views
0

我在爲ORM構建一個使用node.js和knex的應用程序。我希望我的INSERT命令發送成功或錯誤的反應,但它不工作由於某些原因:Node.js錯誤處理

knex('reports').insert({ 
    reportid: reportId, 
    created_at: currentDate 
}).then().catch(function(error) { 
    if(error) { 
     console.log("error!!!: " + error) 
     res.send(400, error); 
    } else { 
     console.log('no error'); 
     res.send(200); 
    } 
}); 

代碼原樣不CONSOLE.LOG出了錯誤,也沒有錯誤。

注 - res.send(200)應該返回到我的客戶端以提醒客戶端請求已成功。

有人可以幫忙嗎?提前致謝!!

+0

可能是因爲.catch onl y在出現錯誤時運行。 –

+0

我明白了..除了'.catch'我還能用什麼來獲得理想的效果? –

+1

然後使用。然後處理成功,並收集錯誤。 –

回答

2

承諾將觸發您的then函數或catch函數。不是都。處理成功案例發生在then函數中,處理錯誤案例發生在catch函數中。

要與您的代碼演示:

knex('reports').insert({ 
    reportid: reportId, 
    created_at: currentDate 
}).then(function(data) { 
    console.log('no error'); 
    res.send(200); 
}).catch(function(error) { 
    console.log("error!!!: " + error) 
    res.send(400, error); 
});