使用ejs组件将数据从js发送到html
我刚刚开始学习JS和node.js。 我一直在尝试做一些在MySQL中通过ejs组件发送数据到数据库的练习。 我尝试使用ejs.render(data,{data:something_from_DB}); 发送由“数据”标识的获取信息(something_from_DB)。 然后,我在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' } ]
看起来不错 我期待通过这个“数据”,但我不认为这是发生。
如果我使用不符合语境的单词,请纠正我的错误。
我觉得有一个简单的错误,试试这个。
res.render('ejs file name',{data: results,});