I want to post request and get data for example
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;
}
but i am using this in following function of 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");
}
and i am getting output like this
saving user
undefined
user saved
output from localhost 3000 User{
id:10,
firstName:xyz,
lastName:qwe
}
how to wait until localhost 3000 complete its request and give response back to this localhost port?
or is there any alternative solution to this.
Try below, this works for me just u have to use promise in deep.By using promise it will wait until it gets response from 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);
}
}
});
});
}