我希望能够在SQL查询的回调中使用res.sendFile(__dirname + '/index.html');
。我不能这样做,因为它说:
sendFile不是一个函数。
我有SQL查询SELECT * FROM表,其回调和参数为(req, res, result)
,该如何在回调中实现?
下面是一些代码:
app.post('/home', (req, res) => {
username = 'myuser';
con.query(`SELECT row FROM table`, (req, res, err, result) => {
var check = result.includes(username);
if ( check == true ) {
res.sendFile(__dirname + '/err.html');
} else if (check == false) {
res.sendfile(__dirname + '/index.html');
}
});
});
答案 0 :(得分:0)
当给定函数具有回调时,该回调的参数是固定的。对于con.query()
,参数为(err, result)
,错误和结果。
您正在有效地执行的操作是将错误重命名为req
,将结果重命名为res
,并尝试调用res.sendFile()
,而实际上是根据以下结果调用sendFile()
查询,这不是问题。
您无需尝试传递req和res:这些变量已经在更高范围中定义,因此您可以访问它们。
因此您的代码段应为:
app.post('/home', (req, res) => {
username = 'myuser';
con.query(`SELECT row FROM table`, (err, result) => {
var check = result.includes(username);
if ( check == true ) {
res.sendFile(__dirname + '/err.html');
} else if (check == false) {
res.sendfile(__dirname + '/index.html');
}
});
});