我正在使用Node.js,并使用promise执行数据库调用。我设置了一个“.Then/.catch”来处理promise的结果。这部分似乎工作起来没有任何问题。在对从数据库返回的数据进行了一些处理之后,我尝试“重定向”到'.then‘语句中的另一个路由。此重定向似乎会导致'.catch‘语句出现问题。如果我删除‘res.redirect’,我没有错误问题...有解决方法吗?如有任何建议,欢迎光临。
代码:
const db = require('./routes/queries');
//**Query PostGres database...
db.getMembers()
.then(function(value) {
console.log('Async success!', value);
//do some processing on the data returned from the promise call here...
//if I insert a redirect here...such as "res.redirect('/_members');"...
//I get a "Caught an error! ReferenceError: res is not defined" message...?
//evidently the redirect fires the '.catch' statement below...why?
})
.catch(function(err) {
console.log('Caught an error!', err);
}); 发布于 2019-11-20 11:39:23
const db = require('./routes/queries');
const findMembers = () => {
return db.getMembers()
.then(members => {
return members
})
.catch(err => {
console.log('Caught an error!', err);
});
}
//inside your express app
app.get("/some_route", (req, res) => {
return findMembers()
.then(members => {
//do something with your members list
res.redirect("/redirect_route")
})
})https://stackoverflow.com/questions/58922542
复制相似问题