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