首页 > 解决方案 > 如何使用 node.js 从 mySQL 读取数据并回传到 HTML?

问题描述

我正在尝试从中读取数据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();
  }); 
});
}

标签: javascripthtmlmysqlnode.js

解决方案


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

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


推荐阅读