Node.js 如何在typeorm中的异步wait中发布请求

Node.js 如何在typeorm中的异步wait中发布请求,node.js,typeorm,Node.js,Typeorm,我想发布请求并获取数据 比如说 async saveUser(user: any) { var headers = { "Content-Type": "application/json" } var request = require('request'); var res; var req = await request.post({ url: "http://localhost:3000

我想发布请求并获取数据 比如说

async saveUser(user: any) {
        var headers = {
            "Content-Type": "application/json"
        }
        var request = require('request');
        var res;
        var req = await request.post({ url: "http://localhost:3000/user/",json:true, body: user, headers: headers },await function(error,response,body){
            res=body;
            console.log("output from localhost 3000",res);
        });
        return  res;
    }
但我在下面的userController函数中使用了它

 async saveUser(request:Request,response:response,next:NextFunction) {
        console.log("saving user");
        var user = await this.userService.saveUser(request.body);
        console.log(user);
        console.log("user saved");
    }
我得到这样的输出

saving user
undefined
user saved
output from localhost 3000 User{
id:10,
firstName:xyz,
lastName:qwe
}
如何等待localhost 3000完成其请求并将响应返回到此localhost端口


或者是否有其他解决方案。

试试下面的方法,这对我来说很有效,只是你必须深入使用promise。通过使用promise,它将等待收到localhost:3000/用户的响应

async saveUser(user: any) {
    var headers = {
        "Content-Type": "application/json"
    }
    var request = require('request');
    var options = {
        uri: "http://localhost:3000/user",
        body: user,
        headers: headers,
        json: true
    }
    return new Promise(function (resolve, reject) {
        request.post(options, function (err, resp, body) {
            console.log(resp.statusCode);
            if (err) {
                console.log(err.message);
                reject(err);
            } else {
                console.log(body);
                if(resp.statusCode==200){
                    resolve(body');
                }
                else{
                    resolve(body);
                }
            }
        });
    });
}