Как получить данные из postgresql с помощью NodeJs? - PullRequest
0 голосов
/ 11 октября 2018

Возникает проблема при попытке взаимодействия с базой данных postgresql, когда вводится root как pseudo, получая ошибку:

Корень столбца не существует:

Код NodeJS:

app.get('/login',function(request,response){
   var username = request.query['username'];
   var password = request.query['password'];
   console.log("utilisateur "+ username +" avec "+ password +" comme mot 
 de passe");

   const pool  = new Pool(config);
   sql = 'select * from users where pseudo = "' + request.query["username"] + '";';

   pool.on('error',function(err,client){
     console.log("erreur de connexion",err);
   });

   pool.query(sql,function(err,res){
      if (err){return console.error('erreur dexécution !!',err,sql);}
      console.log('nom:', res.rows[0].nom, ' prenom:', res.rows[0].prenom,' pseudo:', res.rows[0].pseudo);

   });
});

пользователи таблица базы данных

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

наконец, мне просто нужно было написать свой SQL-запрос так:

   sql = `select * from users where pseudo = '${ username }' `;
0 голосов
/ 11 октября 2018

Ваша проблема может быть в том, что строки postgresql требуют одинарных кавычек, но вы используете двойные кавычки.Попробуйте что-то вроде этого:

sql = `select * from users where pseudo = '${username}';`;

Но этот код содержит неприятную уязвимость безопасности, которая называется SQL-инъекция .Подумайте о SQL, который будет отправлен в вашу базу данных, если пользователь введет (поддельное) имя пользователя root OR 1 = 1; --.Простым решением этого является использование параметризованных запросов .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...