res.sendFile в обратном вызове SQL-запроса - PullRequest
0 голосов
/ 19 февраля 2019

Я хочу иметь возможность использовать res.sendFile(__dirname + '/index.html'); внутри обратного вызова SQL-запроса.Я не могу сделать это, потому что он говорит:

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');
}
});
});

1 Ответ

0 голосов
/ 19 февраля 2019

Когда заданная функция имеет обратный вызов, параметры этого обратного вызова являются фиксированными.В случае 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');
    }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...