使用 ejs 组件将数据从 js 发送到 html
Posted
技术标签:
【中文标题】使用 ejs 组件将数据从 js 发送到 html【英文标题】:Sending data from js to html with ejs components 【发布时间】:2016-07-20 02:18:03 【问题描述】:我刚刚开始学习 JS 和 node.js。我一直在尝试通过 ejs 组件将数据从 mysql 中的数据库发送到 html 进行一些练习。我尝试使用 ejs.render(data, data: something_from_DB);发送获取的信息(something_from_DB),由“数据”标识。然后我在html的ejs代码中使用了标识符“data”,但它会抱怨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' ]
看起来不错。我希望通过“数据”传递它,但我认为这不会发生。
如果我使用了断章取义的词,请纠正我。
【问题讨论】:
【参考方案1】:我认为这是一个简单的错误。试试这个。
res.render('ejs file name',data: results,);
【讨论】:
这不提供问题的答案,应该是评论。请参阅When should I comment?。一旦你有足够的reputation,你就可以在任何帖子上comment;相反,provide answers that don't require clarification from the asker.以上是关于使用 ejs 组件将数据从 js 发送到 html的主要内容,如果未能解决你的问题,请参考以下文章