我正在尝试从MySQL读取数据,然后如果名称匹配,则将数据回发到同一页面上。我似乎没有将结果返回页面上?怎么了?

我正在学习使用NodeJS,它可以在控制台上运行,但是尝试在HTML上运行

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "petra",
  password: "password",
  database: "mydatabase"
});

function readmySQL() { // function readmySQL is triggered from a html page on click
  var getname = document.getElementById("fullname").value;

con.connect(function(err) {
  if (err) throw err;
  //Select all customers and return the result object:
  con.query("SELECT name, address, contact FROM myaddress", function (err, result, fields) {
    if (err) throw err;
    //console.log(result);
    Object.keys(result).forEach(function(key) {
      var row = result[key];
      if (getname == row.name){ // match entered name to datatbase user name
        document.getElementById("display_result").innerHTML = "Hello you have entered " + getname;
      }
      console.log(row.name + " , " + row.address + " , " + row.contact);
    });

    connection.end();
  });
});
}

最佳答案

NodeJS在服务器上运行。 HTML文件中的脚本在客户端上运行。您不在客户端上包含服务器代码。而是从客户端将消息发送到服务器代码,并解释结果。因此,执行此操作的标准方法是在服务器上定义一个资源,该资源将生成要生成的内容或数据,并仅使用普通页面加载或“ ajax”从客户端检索该内容或数据。

所以你必须通过节点js创建http服务器(检查express js)
在服务器中实现您的Web服务,并通过ajax从前端调用它

关于javascript - 您如何使用node.js从mySQL读取数据并将其发布回HTML?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57584046/

10-09 22:17
查看更多