使用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,});