остановка postman после выполнения запроса

#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. Могу ли я в любом случае сделать так, чтобы 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) после вызова функции.