リクエストライブラリを使用して外部API呼び出しを行っています。 https://github.com/request/request 。私はネイティブのプロミス/非同期エクステンションを使用しています。 https://github.com/request/request-promise-native 。
ただし、ステータスコードを確認することはできません。未定義です。
public async session(): Promise<any> {
const url = <removed>;
const options = {
uri: url,
headers: {
'Authorization': this.config.token
},
json: true,
body: {
}
}
try {
const res = await request.post(options);
if (res.statusCode !== 200) {
// do something
}
console.log(res);
console.log("statuscode", res.statusCode)
return res;
} catch (err) {
return err;
}
}
Res.statusCodeは未定義です。
ドキュメントによると、完全な応答を返すオプションを定義する必要があります。
https://github.com/request/request-promise#get-the-full-response-instead-of-just-the-body
const options = {
resolveWithFullResponse: true
}
Resオブジェクトは未定義かもしれません。コールバックとしてリクエストを試すことができます
request(options, function (error, response, body) {
console.log('statusCode:', response && response.statusCode);
});
または、このようにすることができます https://www.npmjs.com/package/request-promise
var options = {
uri: 'http://the-server.com/will-return/404',
simple: true,
transform: function (body, response, resolveWithFullResponse) { /* ... */ }
};
rp(options)
.catch(errors.StatusCodeError, function (reason) {
// reason.response is the transformed response
});