【问题标题】:Node.js, After inserting not shown in list queryNode.js,插入后未显示在列表查询中
【发布时间】:2017-09-25 21:06:34
【问题描述】:

将产品添加到mysql数据库后,我想转储所有最新产品的产品。该产品正在通过算法添加到数据库中,我想在之后立即列出所有产品。已经尝试过“async”、“promise”等。

--当表格为空时--

connection.query("INSERT INTO `products` (id, name, price)", function (error, results, fields) {}); //inserted one row

connection.query("SELECT * FROM `products`", function (error, results, fields) {}); // show only []

第二次插入后列表查询只显示第一行而不显示第二行。主要问题是这个,表格有两行。

谢谢。

【问题讨论】:

  • 您如何将数据传递给查询,换句话说,您如何指定要插入的内容?另外,很确定您不需要在表格名称周围加上 ` 标记,但这只是一个提示。

标签: mysql node.js database


【解决方案1】:

插入完成后查询数据:

connection.query("INSERT INTO `products` (id, name, price)",
  function (error, results, fields) {
      connection.query("SELECT * FROM `products`", function (error2, results2, fields2){});
});

【讨论】:

  • 谢谢。是的,我已经尝试过了,无法传递给变量 results2。如何将results2处理成一个变量,有可能吗?
  • @jakari results2 一个变量。
【解决方案2】:
connection.query("INSERT INTO products(id, name, price)",
  function (error, results, fields) {
     if(error) return ....
     else{
       connection.query("SELECT * FROM products", function 
        (error,results,fields2){
               var returned_data = results; 
               console.log(results);
               //res.send(results); 
           })
   }});

应该是这样,但请检查你是否以正确的方式插入数据,因为你没有提供你做的方式,我怀疑任何异步方法都会让你失败。

按需编辑:您可以将结果传递给变量,但如果不这样做,您只能在该函数中使用它(因为它的范围) ,即 res.send 或 res.end 它(如果您在请求中使用它,我猜您就是这样),或者 console.log 它或只是将其写入文件。

【讨论】:

  • 谢谢,您知道“第二个查询结果”传递给变量的任何方法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多