我想发布请求并获取数据例如
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);
}
}
});
});
}
我是一名优秀的程序员,十分优秀!