#node.js #rest #routes #postman
#node.js #отдых #маршруты #postman
Вопрос:
Я пытаюсь создать погодный API с помощью node. В моем файле контроллера у меня есть этот код, который выполняется для маршрута /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 и консоль.отображается журнал, Postman, похоже, зависает, как показано на этом рисунке. Могу ли я в любом случае сделать так, чтобы Postman перестал отправлять запрос после return или console.log?
Ответ №1:
Postman ожидает ответа от сервера. Ваш код в настоящее время не отправляет никакого ответа, поэтому postman кажется «зависшим», поскольку он ожидает. Попробуйте изменить строку UserModel.check(req.body.city)
say на say res.send(UserModel.check(req.body.city))
, чтобы она отправляла данные, возвращенные из вашей UserModel.check
функции, обратно в качестве ответа. В качестве альтернативы, если вы не хотите отправлять возвращаемое значение, вы можете просто добавить res.send(PutWhateverYouWantSentHere)
после вызова функции.