Estoy usando la biblioteca de solicitudes para hacer llamadas a API externas. https://github.com/request/request . Estoy usando la extensión nativa de promesa/asincrónica. https://github.com/request/request-promise-native .
Sin embargo, no puedo verificar el código de estado, no está definido.
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; } }
El res.statusCode no está definido.
De acuerdo con la documentación, debemos definir en las opciones que queremos devolver la respuesta completa.
https://github.com/request/request-promise#obtener-la-respuesta-completa-en-lugar-de-solo-el-cuerpo
const options = { resolveWithFullResponse: true }
Creo que el objeto res podría no estar definido. puede intentar solicitar como devolución de llamada
request(options, function (error, response, body) { console.log('statusCode:', response && response.statusCode); });
o puede hacer esto 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 });