開始我的第一個重要的NodeJS應用程序,我不確定我是否正確使用promise。在我的情況下,我發送一個AJAX請求,然後一旦完成想要返回一些東西(在這種情況下,發回一個特定的狀態碼和消息到瀏覽器)。我正在做的額外驗證在當時的塊,但我不知道我是否執行這個權利。任何洞察力將不勝感激。NodeJS清晰的承諾
var Promise = require("bluebird");
var request = Promise.promisify(require("request"));
Promise.promisifyAll(request);
...
request({
url: 'https://my.url.com', //URL to hit
method: 'POST',
headers: {
'Content-Type': 'MyContentType',
'Custom-Header': 'Custom Value'
},
body: jsonStringVar //Set the body as a string
}).then(function (resp) {
if(resp.headers.status != "200") {
throw (401)
}
console.log(resp);
console.log(resp.headers.status);
res.status(201);
res.json({
"status": "Success"
});
}).catch(function (err) {
console.log(err)
res.status(500);
res.json({
"status": "bam"
});
});
我覺得我錯誤地檢查鏈接的功能resp.header.status並拋出一個錯誤。有沒有更好的方式來做自定義驗證和拋出錯誤,或者這是被接受的做法錯誤的承諾?
您是否在詢問'request'以及'resp.headers.status!=「200」'是否正確,或者您是否在詢問promise以及「throw 401;'是否合適? – Bergi
承諾和401是否會是合適的路線 – CogitoErgoSum