我是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>
答案 0 :(得分:0)
executeQuery函数中有一个小错误(但很关键!),第一个参数应该是错误对象,因此,如果您可以按照下面的方式重写它,则查询应该可以工作。
function executeQuery(sql, cb){
connection.query(sql, function( error, result, fields){
if (error) {
console.error("An error has occurred:", error);
} else {
cb(result);
}
})
}
Node回调通常为错误对象保留第一个参数,很容易错过这一点!
此外,我们应该清楚,Node.js Express代码将在服务器端运行,因此要查看结果,您需要将浏览器指向该服务器所服务的主机和端口。 http://localhost:3000/(如果您这样做:)
app.listen(3000);