Express 承诺函数中未定义res.status
下面是我在一个名为“querys.js”的文件中的函数,用于查询数据库并将结果作为json对象返回Express 承诺函数中未定义res.status,express,promise,routes,Express,Promise,Routes,下面是我在一个名为“querys.js”的文件中的函数,用于查询数据库并将结果作为json对象返回 function getUsers(req,res) { db.any('select * from table') .then(function(response) { console.log(response); \\prints out JSON results directly from database res.status(200)
function getUsers(req,res) {
db.any('select * from table')
.then(function(response) {
console.log(response); \\prints out JSON results directly from database
res.status(200)
.json({
status: 'success',
data: response,
message: 'Retrieved all data'
});
})
.catch(function (err) {
console.log(err);
});
module.exports = {getUsers:getUsers};
这是我的快速路径,它应该将从上述函数返回的数据发送到一个允许我从前端获取数据的URL
db = require('./queries');
app.get('', function(res,req) {
db.getUsers();
});
我遇到的问题是,在第一个函数中,“res”是未定义的,因此当我尝试调用res.status时,它会抛出一个错误,并且不会继续执行应将数据发送到端点的其余代码
关于为什么在承诺的上下文中res是未定义的,有什么想法吗?在
getUsers
中传递参数可能会有所帮助
db = require('./queries');
app.get('', function(res,req) {
db.getUsers(req,res);
});
太快了!很高兴我错过了一些愚蠢的东西,而不是逻辑上的缺陷。我会尽快接受你的答复。谢谢我不知道你的项目。但如果可以的话,我真的建议你使用typescipt。TS将显著减少调试时间。这样的错误将立即被发现。