首页 > 解决方案 > 请求完成后停止邮递员

问题描述

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

控制器.js:

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

模型.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 似乎已挂断,如图所示邮差。无论如何我可以让邮递员在返回或console.log之后停止发送请求吗?

标签: node.jsrestroutespostman

解决方案


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


推荐阅读