2015-11-18 3 views
0

Я использую 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'); 
     } 
    }); 

}); 
+1

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) при конкатенации. –

+0

Спасибо за этот совет, я избежал ввода, я ценю вашу информацию о том, как обеспечить это. –

ответ

0

я определил, что с помощью этого синтаксиса

rows[0].username 

Я был в состоянии получить доступ к переменному