2016-09-13 2 views
0

Я пытаюсь выполнить после вызова в узле JS, я тестирование через пост, но я не в состоянии retrive данных, моего кода узла,после вызова не работает в узле JS

exports.login = function(req, res) { 
console.log("Params:"+req.body.email); 
    //console.log('email:'+params.email); 
connection.query('SELECT * FROM profile where email ='+req.body.email,function(error,result,rows,fields){ 
    if(!!error){console.log(error) 
     console.log('fail'); 
    }else{ 
     console.log(result); 
     res.send(result); 
    } 
    // } 

    });} 

мои маршруты,

router.post('/login',cors(), admin.login); 

я получаю сбой и моя ошибка

{ [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com' at line 1] 

мой вход через почтальона

{"email":"[email protected]"} 
+0

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

ответ

1

Не стройте строку запроса напрямую, это дает вам возможность открывать атаки на инъекции, а также блокировать определенные символы, как вы здесь испытываете. Используйте заполнитель так:

var query = "select * from profile where email = ?"; 

connection.query(query, [req.body.email], function(error,result,rows,fields) { 
... 
+0

Its работает сейчас, но я получаю пустой массив [], даже если у меня были данные – MMR

+0

Как я могу написать команду вроде этого «выберите * из профиля, где email = [email protected] и pasword = 1» – MMR

+0

его работа сейчас. – MMR

Смежные вопросы