【发布时间】:2017-01-23 08:13:32
【问题描述】:
我的 Express.js 应用程序一直在抛出 Cannot read property 'req' of undefined。本质上,它监听GET 请求,获取content 查询,然后用表格回复。以下是出现问题的部分。
index.js
var panels = require('./modules/panels.js');
app.get('/panel', function (req, res) {
var user;
if (user = req.session.user) {
panels.getContents(req.query.content, user.innId, res.send);
} else {
res.sendStatus(401);
}
});
modules/panels.js
exports.getContents = function(panelName, innId, callback) {
var response = "";
switch (panelName) {
case 'tenants':
con.query(queryString, queryParams, function(err, rows) {
if (err) {
handle(err);
} else {
if (rows.length == 0) {
var tenants = 0;
var debtors = 0;
} else {
var tenants = rows[0].tenants;
var debtors = rows[0].length;
}
response = convertToHTMLTable(rows);
}
callback(response); /*THE ERROR POINTS HERE */
});
break;
/* other cases here */
default:
response += "Invalid Request";
callback(response);
}
}
我做错了什么?我的猜测是我不应该将res.send 作为回调传递。那么,我该如何解决呢?
【问题讨论】:
-
您是否尝试将
res.send替换为() => res.send()? -
user = req.session.user应该是user == req.session.user,究竟是哪一行引发了错误? -
@AdamAzad 不,我想将会话分配给用户,同时检查它是否真实。我在错误的行上发表了评论。它在 panel.js 中。
-
@UlysseBN 是的,看起来这就是问题所在。
-
@starleaf1 好的,我已经遇到了类似的问题:查看here 了解更多信息。
标签: javascript node.js express