我刚刚在Heroku上部署了一个小型气象应用程序项目,当用户输入无效的城市或邮政编码时,出现内部服务器错误。如果发生这种情况,我在路由中添加了一个.catch来呈现错误页面,并且它完全按照我的本地版本中的预期运行,但不适用于已部署的版本。有谁知道为什么会这样吗?我正在使用.ejs模板来呈现我的页面。
app.get("/results_city", (req, res) => {
let query = req.query.search;
console.log("Search params:", query);
let weatherApiKey = process.env.WEATHER_API_KEY;
let weatherUrl =
"https://api.openweathermap.org/data/2.5/weather?q=" +
query +
"&appid=" +
weatherApiKey;
rp(weatherUrl)
.then((body) => {
let data = JSON.parse(body);
res.render("results", { data: data });
console.log(data);
})
.catch(err => {
if (err) {
res.render("Error")
return;
}
console.log(err);
});
});