Express.JS 从 POST 请求中获取状态代码
Express.JS Get Status Code from POST Request
我需要找到一种方法来获得 https post 请求的响应。到目前为止,我发现仅在回调函数中提供,不包括数据写入请求后的结果,如下所示结束:
**注意:下面的代码将包含在“app.post”方法中。
const https = require("https");
var url = "https://someurl.com";
var options = {option1: "some option"}
var jsonData = {data1: "some data"};
const request = https.request(url, options, function (repsonse) {
// HERE THE STATUS CODE ONLY CAPTURES IF THE RESOURCE WAS AVAILABLE
// NOT IF THE REQUEST WAS SUCCESSFUL
console.log(response.statusCode);
});
request.write(jsonData);
request.end();
在“request.end()”代码之后,我需要能够获取请求返回的状态代码以确定实际请求是否成功。我想做这样的事情:
if (response.statusCode !== 200) {
res.sendFile(__dirname + "/failure.html");
}
else {
res.sendFile(__dirname + "/success.html");
}
if 语句应该在 request.end() 之后 运行 来判断实际请求是否成功。这是使用 API 框架(例如 Flask-Python)的标准,但我似乎无法在 express.js 中找到捕获它的方法。任何帮助将不胜感激。
https.request
工作 异步 。在request.end()
之后无法同步判断请求是否成功,只能在回调函数中(可以在response.statusCode
求值)或者在error
事件中(如果请求可以根本不会创建,例如因为服务器无法访问)。
const request = https.request(url, options, function (response) {
console.log(response.statusCode);
if (response.statusCode !== 200)
res.sendFile(__dirname + "/failure.html");
else
res.sendFile(__dirname + "/success.html");
});
request.on("error", function(err) {
console.error(err);
res.sendFile(__dirname + "/failure.html");
});
request.write(jsonData);
request.end();
我需要找到一种方法来获得 https post 请求的响应。到目前为止,我发现仅在回调函数中提供,不包括数据写入请求后的结果,如下所示结束:
**注意:下面的代码将包含在“app.post”方法中。
const https = require("https");
var url = "https://someurl.com";
var options = {option1: "some option"}
var jsonData = {data1: "some data"};
const request = https.request(url, options, function (repsonse) {
// HERE THE STATUS CODE ONLY CAPTURES IF THE RESOURCE WAS AVAILABLE
// NOT IF THE REQUEST WAS SUCCESSFUL
console.log(response.statusCode);
});
request.write(jsonData);
request.end();
在“request.end()”代码之后,我需要能够获取请求返回的状态代码以确定实际请求是否成功。我想做这样的事情:
if (response.statusCode !== 200) {
res.sendFile(__dirname + "/failure.html");
}
else {
res.sendFile(__dirname + "/success.html");
}
if 语句应该在 request.end() 之后 运行 来判断实际请求是否成功。这是使用 API 框架(例如 Flask-Python)的标准,但我似乎无法在 express.js 中找到捕获它的方法。任何帮助将不胜感激。
https.request
工作 异步 。在request.end()
之后无法同步判断请求是否成功,只能在回调函数中(可以在response.statusCode
求值)或者在error
事件中(如果请求可以根本不会创建,例如因为服务器无法访问)。
const request = https.request(url, options, function (response) {
console.log(response.statusCode);
if (response.statusCode !== 200)
res.sendFile(__dirname + "/failure.html");
else
res.sendFile(__dirname + "/success.html");
});
request.on("error", function(err) {
console.error(err);
res.sendFile(__dirname + "/failure.html");
});
request.write(jsonData);
request.end();