NodeJS Pass参数到mysql查询

时间:2017-12-29 09:03:53

标签: mysql node.js

我正在构建nodeJS应用程序。我想将参数传递给我的查询语句.Below是处理我正在查找的内容的模块但是不幸的是插入成功,而不是我传递给我的查询的参数值。当我检查时它插入我的数据库新行,但值为null。

以下是此应用的数据库表格捕获

enter image description here

app.post('/login',function(req, res){
var name = req.session.name ;
var pass = req.session.pass;
var mail = req.session.mail ;

con.connect(function(err){
   con.query("INSERT INTO register values(null, ?, ?, ?)",[name,mail,pass],
            function(err,result){
                if(err) { return console.log("Error when registration");}
                console.log("registration succeeded + query");

             }); 
       });
});

提前致谢

注意:数据库连接没有问题

3 个答案:

答案 0 :(得分:1)

请求对象没有session属性。我想你可能正在寻找body财产。

答案 1 :(得分:0)

你必须使用req.bosy而不是os req.session。为此,您需要身体解析器并将其配置为

app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
  extended: true
}));

在你的代码中,你必须用req.params.name替换req.session.name。请试试这个。希望这可以帮助。感谢

答案 2 :(得分:-3)

app.post('/login',function(req, res){
    //params
    const name = req.body.name ;
    const pass = req.body.pass;
    const mail = req.body.mail ;
    // sql syntax
    const syntaxSQL = "INSERT INTO register (name,pass,mail) values ('"+name+"','"+pass+"','"+mail+"')" ;

    con.connect(function(err){
       con.query(syntaxSQL, // <== use your previously built query here
                function(err,result){
                    if(err) { return console.log("Error when registration");}
                    console.log("registration succeeded + query");

                 }); 
           });
    });