gpt4 book ai didi

node.js - 如何在 typeorm 中的异步等待中发布请求

转载 作者:太空宇宙 更新时间:2023-11-03 23:47:39 31 4
gpt4 key购买 nike

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

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/user 获得响应..

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);
}
}
});
});
}

关于node.js - 如何在 typeorm 中的异步等待中发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60488512/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com