我正在尝试使用 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 似乎被挂断了,如图 所示。无论如何我可以做到让邮递员在返回或 console.log 后停止发送请求?
答案 0 :(得分:1)
邮递员正在等待来自服务器的响应。您的代码当前未发送任何响应,因此邮递员在等待时似乎“挂断了”。尝试将 UserModel.check(req.body.city)
行更改为 res.send(UserModel.check(req.body.city))
,以便它将 UserModel.check
函数返回的数据作为响应发送回去。或者,如果您不想发回返回的值,您可以在函数调用后添加 res.send(PutWhateverYouWantSentHere)
。