我刚开始学习JS和node.js.我一直试图通过ejs组件将数据从MySQL中的数据库发送到html。我尝试使用ejs.render(data,{data:something_from_DB});发送获取的信息(something_from_DB),由"数据"标识。然后我使用了标识符" data"在html的ejs代码中,但它抱怨数据没有在html文件中定义。
这是js代码。
var mysql = require('mysql');
var fs = require('fs');
var http = require('http');
var express = require('express');
var ejs = require('ejs');
var app = express();
app.use(app.router);
var client = mysql.createConnection({
user: 'username',
password: 'password',
database: 'database_name'
});
app.get('/', function(req, res){
fs.readFile('list.html', 'utf8', function(error, data){
client.query('SELECT * FROM test_table', function(error, results){
console.log(results);
res.send(ejs.render(data), {data: results});
});
});
});
这是list.html
中的部分<% data.forEach(function(item, index){ %>
<tr>
<td><%= item.id %></td>
<td><%= item.name %></td>
<td><%= item.phone_no %></td>
</tr>
<% }); %>
当我打印结果时,我得到:
[ RowDataPacket { id: 1, name: 'PETER', phone_no: '0100000000' } ]
看起来很好。我希望通过&#34;数据&#34;但我不认为这种情况正在发生。
如果我使用的语言不合适,请纠正我。
答案 0 :(得分:0)
我认为有一个简单的错误。只是试试这个。
res.render('ejs file name',{data: results,});