我希望能够在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');
}
});
});
当给定函数具有回调时,该回调的参数是固定的。在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');
}
});
});