Node.js Nodejs请求承诺如何显示状态代码

Node.js Nodejs请求承诺如何显示状态代码,node.js,express,node-request,request-promise,Node.js,Express,Node Request,Request Promise,我正在使用请求库进行外部api调用。我正在使用本机承诺/异步扩展 但是,我无法检查状态代码,它未定义 public async session(): Promise<any> { const url = <removed>; const options = { uri: url, headers: { 'Authorization': this.config.token },

我正在使用请求库进行外部api调用。我正在使用本机承诺/异步扩展

但是,我无法检查状态代码,它未定义

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;
    }
}
公共异步会话():承诺{
常量url=;
常量选项={
uri:url,
标题:{
“授权”:this.config.token
},
是的,
正文:{
}
}
试一试{
const res=wait request.post(选项);
如果(res.statusCode!==200){
//做点什么
}
控制台日志(res);
console.log(“statuscode”,res.statuscode)
返回res;
}捕捉(错误){
返回错误;
}
}

res.statusCode未定义。

我认为res对象可能未定义。您可以尝试将请求作为回调

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;
    }
}
request(options, function (error, response, body) {

  console.log('statusCode:', response && response.statusCode); 

});
或者你可以这样做


根据我们需要在选项中定义的文档,我们希望返回完整响应


你能把全文寄出去吗code@NuOneTAttygalle你遗漏了什么细节,我已经修改了url,但这不应该是一个问题。你能转储整个res对象吗?我想看看你们从服务中得到了什么回应?它是未定义的还是有其他问题。@Vinay我得到一个对象,我删除了一个包含会话令牌的字段,但这几乎就是它。你能告诉我你怎么称呼这个吗?我需要回报你一个承诺。是的。使用promise本机库的全部原因。响应不是未定义的,它包含具有正确字段的对象。但是没有响应代码。我已经离开这个库,开始使用axios。axios是否有
resolveWithFullResponse
const options = {

        resolveWithFullResponse: true

}