繁体   English   中英

如何使用 NodeJS 将 MySQL 中的数据显示到 HTML 页面中

[英]How to display data from MySQL into HTML-Page with NodeJS

我是 Node JS 的新手,我正在尝试将从我的 MySQL 表中获取的数据显示到我的 HTML 文件中的表中。 但我找不到任何对我有帮助的东西。 如果有人可以帮助我获得解决方案,我将不胜感激:) 这是我的 js 代码:

 //app.js // Get the mysql service var mysql = require('mysql'); var express = require('express'); var app = express(); app.get('/', function (request, response) { fetchData(response); console.log('Done. Displayed Data.'); }); // Add the credentials to access your database var connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'Breunninger', port: '3306' }); // connect to mysql connection.connect(function(err) { if(err){throw err;} console.log('Connected'); }); function executeQuery(sql, cb){ connection.query(sql, function( result, fields){ cb(result); }) } function fetchData(response){ executeQuery("SELECT username, tor, datum, sendungsstruktur FROM Buchung JOIN user ON(user.id = Buchung.userid)", function (result) { console.log(result); response.write('<div class="container-wrap"><table id="example" class="display"><tr>'); for(var column in result[0]){ response.write('<td> <label>' + column + '</label></td>'); response.write('</tr>'); } for(var row in result){ response.write('<tr>'); for(var column in result[row]){ response.write('<td>' + result[row][column]+ '</td>'); } response.write('</tr>'); } response.end('</table></div>'); }); }
 <div class="container-wrap"> <div class="flexslider"> <script src="app.js"></script> </div> </div>

executeQuery function 中有一个小(但很严重)错误,第一个参数应该是错误 object。 因此,如果您可以按如下方式重新编写它,您的查询应该可以工作。

function executeQuery(sql, cb){
    connection.query(sql, function( error, result, fields){
        if (error) {
            console.error("An error has occurred:", error);
        } else {
            cb(result);
        }   
    })
}

节点回调通常为错误object保留第一个参数,很容易错过这个!

另外,我们应该清楚,Node.js Express 代码将在服务器端运行,因此要查看结果,您需要将浏览器指向所服务的主机和端口,例如http://localhost:3000/ (如果你做:)

app.listen(3000);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM