2016-09-13 4 views
0

Ich versuche, einen Beitrag Anruf in Knoten js auszuführen, teste ich es durch Post, aber ich bin nicht in der Lage, Daten retrive, meinen Knoten Code,Post Anruf wird nicht in Knoten js arbeitet

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

    });} 

meine Routen,

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

i fehlschlagen und meine Störung erhalte ist

{ [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] 

meine Eingabe durch Postbote

+0

Sieht aus wie Ihre Abfrage nicht erhält den Parameter in where-Klausel, ich als erstes tun würde, ist zu überprüfen, welche Funktion –

Antwort

1

Erstellen Sie die Abfragezeichenfolge nicht direkt, dies lässt Sie offen für Injektionsattacken und Drosseln auf bestimmte Zeichen, wie Sie hier erfahren. Verwenden Sie einen Platzhalter wie folgt:

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

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

Sein kehrt nun arbeiten, aber ich bin immer ein leeres Array [] sogar Wenn ich Daten hätte – MMR

+0

Wie kann ich einen Befehl wie diesen schreiben "Wählen Sie * aus dem Profil, wo Email = [email protected] und Pasword = 1" – MMR

+0

es funktioniert jetzt. – MMR