Beginn meiner ersten signifikanten NodeJS App und ich bin unsicher, ob ich Versprechungen richtig heble. In meinem Fall sende ich eine AJAX-Anfrage und dann, wenn es fertig ist, möchte ich etwas zurückgeben (In diesem Fall senden Sie einen bestimmten Statuscode und eine Nachricht an den Browser zurück). Ich mache zusätzliche Validierung im Block, aber ich bin mir nicht sicher, ob ich dieses Recht ausführe. Jeder Einblick würde geschätzt werden.NodeJS Klarheit um Versprechen
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"
});
});
ich, wie ich fühle mich falsch bin die resp.header.status in der verketteten Funktion und wirft einen Fehler zu überprüfen. Gibt es eine bessere Möglichkeit, eine benutzerdefinierte Validierung durchzuführen und einen Fehler zu melden, oder wäre dies die akzeptierte Vorgehensweise, um ein Versprechen zu verwerfen?
Fragen Sie nach 'request' und ob' resp.headers.status! = "200" richtig ist, oder fragen Sie nach Versprechungen und ob 'throw 401;' angebracht ist? – Bergi
Versprechen und ob Throw 401 wäre der richtige Weg zu gehen – CogitoErgoSum