node.js - 请求完成后停止邮递员
问题描述
我正在尝试使用节点创建天气 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之后停止发送请求吗?
解决方案
Postman 正在等待来自服务器的响应。您的代码当前未发送任何响应,因此邮递员在等待时似乎“挂断”了。尝试更改UserModel.check(req.body.city)
说这样的行,res.send(UserModel.check(req.body.city))
以便它将从您的UserModel.check
函数返回的数据作为响应发送回来。或者,如果您不想发回返回值,您可以res.send(PutWhateverYouWantSentHere)
在函数调用之后添加。
推荐阅读
- linux - VFAT,Linux:重新启动后显示的文件时间戳无效
- vue.js - Nuxt-img 从文件中获取宽度和高度属性
- android - android EditText UI在firebase调用后冻结
- virtualization - qemu:防止来宾占用 CPU
- logic - Coq初学者在这里,如何理解语法?
- python - 如何在 Python 的 for 循环中使用已定义的字符串
- python - 使用均匀分布近似高斯方差(重要性采样)
- list - 如何在 O(1) 中使用 set(i, ele)、add()、remove() 方法制作列表?
- php - 如何从 DB Wordpress 获取 slug 值
- javascript - 为什么第二个 switchMap 在订阅时会执行数百次?