请求完成后停止邮递员

时间:2021-02-09 02:55:04

标签: node.js rest routes postman

我正在尝试使用 node.js 创建天气 API。在我的控制器文件中,我有为 /check 路由运行的代码。

controller.js:

//Check Weather
exports.check = (req, res) => {
    UserModel.check(req.body.city)
};

model.js:

//Check Weather
function getData(city) { 

url = "something";
request(url, function (err, response, body) {
if(err){
    console.log('error:', error);
} else {
    console.log('body:', body);
}
});
} 

exports.check = (city) => {

city = city.toLowerCase();
let values = getData(city);
console.log(city);

return(values);
};

路线:

app.post('/check', [
    UsersController.check
]);

当我运行它时,它可以正常运行,并且正确的内容会记录在控制台中。但是,在我在 Postman 中发送请求并显示 console.log 之后,Postman 似乎被挂断了,如图Postman 所示。无论如何我可以做到让邮递员在返回或 console.log 后停止发送请求?

1 个答案:

答案 0 :(得分:1)

邮递员正在等待来自服务器的响应。您的代码当前未发送任何响应,因此邮递员在等待时似乎“挂断了”。尝试将 UserModel.check(req.body.city) 行更改为 res.send(UserModel.check(req.body.city)),以便它将 UserModel.check 函数返回的数据作为响应发送回去。或者,如果您不想发回返回的值,您可以在函数调用后添加 res.send(PutWhateverYouWantSentHere)