问题使用Express和Node.js将记录插入MySQL

时间:2018-04-25 12:02:17

标签: mysql node.js express

我遇到的问题是我的INSERT代码无效。我可以从数据库中选择数据,但我无法添加数据。当我运行http://18.219.103.143:3000/insert-user?fname=new&lname=user&email=ejw&password=hsdf时,我在控制台中收到服务器错误。 enter image description here

我认为这个app.get有问题。

app.get('/insert-user',function(req,res,next){
  var context = {};
  pool.query("INSERT INTO user (`fname`, `lname`, `email`, `password`) VALUES (?,?,?,?)", 
  [req.query.fname, req.query.lname, req.query.email, req.query.password], 
  function(err, result){
    if(err){
      next(err);
      return;
    }
    context.results = "Inserted id " + result.insertId;
    res.render('home',context);
  });
});

但是,我无法将任何消息打印到控制台以进行调试。但是,我认为,因为我可以使用SELECT语句连接到数据库,连接不是问题。这几乎就好像app.get INSERT甚至没有被执行。有没有人知道有效的调试方法?我正在撞墙,无法弄清楚最好的下一步是什么。

1 个答案:

答案 0 :(得分:1)

我首先会查看您运行服务器的终端。如果没有任何输出,我会将你的脚本修改为以下

app.get('/insert-user',function(req,res,next){
  var context = {};
  pool.query("INSERT INTO user (`fname`, `lname`, `email`, `password`) VALUES (?,?,?,?)", 
  [req.query.fname, req.query.lname, req.query.email, req.query.password], 
  function(err, result){
    if(err){
      console.log(err); // <= add this
      next(err);
      return;
    }
    context.results = "Inserted id " + result.insertId;
    res.render('home',context);
  });
});

然后尝试再次点击您的终端。希望记录错误的详细信息(在终端中,而不是浏览器中)。

相关问题