【问题标题】:Sending data from js to html with ejs components使用 ejs 组件将数据从 js 发送到 html
【发布时间】: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' } ]

看起来不错。我希望通过“数据”传递它,但我认为这不会发生。

如果我使用了断章取义的词,请纠正我。

【问题讨论】:

    标签: javascript mysql node.js ejs


    【解决方案1】:

    我认为这是一个简单的错误。试试这个。

          res.render('ejs file name',{data: results,});
    

    【讨论】:

    猜你喜欢
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2019-12-13
    • 1970-01-01
    相关资源
    最近更新 更多