Я использую Node.JS express и mysql из NPM, я успешно подключился к базе данных и создал веб-страницу для публикации имени пользователя и пароля, эта функция ниже запрашивает базу данных и возвращает с помощью строки какNode.JS Express Static Directory
[ RowDataPacket { username: 'foouser', password: 'foopassword', admin: 1 } ]
Я пытаюсь использовать, если сравнить то, что имя пользователя приходит из HTML и имя пользователя приходит от сервера MySQL, к сожалению, у меня нет никакого способа, чтобы изолировать имя сервера MySQL дает мне в ответ.
Я пробовал следующее.
< rows.RowDataPacket.username - это возвращает неопределенным и разбивает сценарий
< rows.username - неопределенный
Я даже пытался использовать переменное поле, но оно дает мне ничего не уместно в этой ситуации.
Возможно ли, что я мог каким-то образом получить доступ к переменной имени пользователя из ответа выше?
app.post('/', urlencodedParser, function(req,res){
con.query("SELECT * from users WHERE username='" + req.body.username + "' AND password='" + req.body.password + "'", function(err,rows,fields){
if (!err){
console.log(rows.username);
res.sendFile('loginsucsess.html');
} else {
console.log("Could not get a response from server.");
res.send('Internal Error');
}
});
});
Side Примечания: Ваш запрос на данный момент весьма восприимчив к [инъекции SQL] (HTTPS://en.wikipedia.org/wiki/SQL_injection) (https://xkcd.com/327/). Вы должны использовать [заполнители и параметры] (https://github.com/felixge/node-mysql#performing-queries) с вашими запросами. Или, по крайней мере, [избегать входов] (https://github.com/felixge/node-mysql#escaping-query-values) при конкатенации. –
Спасибо за этот совет, я избежал ввода, я ценю вашу информацию о том, как обеспечить это. –