首页 > 解决方案 > 数据未在 Node JS 中呈现到 EJS 页面中

问题描述

我正在尝试将数据呈现到 EJS 页面,但我无法将数据发送到 EJS 页面。目前,我正在从 MSSQL 数据库接收数据作为记录集。下面的屏幕截图给出了 console.log(rows) 的结果。

[ https://i.stack.imgur.com/CItXQ.jpg][1]

数据库编码:

app.get('/data', receiveData);

function receiveData(req, res) {
    db.executeSql("SELECT * FROM arduino", function (recordsets, err, ) {
        var data = JSON.stringify(recordsets);

        if (err) {
            httpMsgs.show500(request, res, err);
        }
        else {
            var    Jdata = JSON.parse(data);
            console.log(Jdata);
            res.render('arduino',{Jdata:Jdata});
        }
    });
}

Ejs 编码

        <table border="1" cellpadding="7" cellspacing="7">
        <tr>
            <th> - </th>
            <th>ID</th>
            <th>Machine</th>
            <th>Start Time</th>
            <th>End Time</th>
            <th>Length Time</th>
            <th> Day/Night</th>
            <th>Job Number</th>
        </tr>
        <% if(Jdata.length){

        for(var i = 0;i < Jdata.length;i++) { %>
        <tr>
            <td><%=(i+1)%></td>
            <td> </td>
            <td><%=Jdata.recordset[0].Id %></td>
            <td><%=Jdata.recordset[0].StartTime%></td>
            <td><%=Jdata.recordset[0].EndTime%></td>
            <td><%=Jdata.recordset[0].LengthTime%></td>
            <td><%=Jdata.recordset[0].Day%></td>
            <td><%=Jdata.recordset[0].JobNumber%></td>

        </tr>
        <% }

        }else{ %>
            <tr>
                <td colspan="3">No Data</td>
            </tr>
        <% } %>

    </table>

如果有人可以帮助我,那就太好了。

谢谢。

标签: javascriptnode.jsjsonsql-serverejs

解决方案


我希望下面的答案能解决您的问题。您正在使用 Jdata.length 而不是 Jdata.recordset.length。根据控制台日志,我理解这一点。

<table border="1" cellpadding="7" cellspacing="7">
    <tr>
        <th> - </th>
        <th>ID</th>
        <th>Machine</th>
        <th>Start Time</th>
        <th>End Time</th>
        <th>Length Time</th>
        <th> Day/Night</th>
        <th>Job Number</th>
    </tr>
    <% if(Jdata.recordset.length){

    for(var i = 0;i < Jdata.recordset.length;i++) { %>
    <tr>
        <td><%=(i+1)%></td>
        <td> </td>
        <td><%=Jdata.recordset[0].Id %></td>
        <td><%=Jdata.recordset[0].StartTime%></td>
        <td><%=Jdata.recordset[0].EndTime%></td>
        <td><%=Jdata.recordset[0].LengthTime%></td>
        <td><%=Jdata.recordset[0].Day%></td>
        <td><%=Jdata.recordset[0].JobNumber%></td>

    </tr>
    <% }

    }else{ %>
        <tr>
            <td colspan="3">No Data</td>
        </tr>
    <% } %>

</table>

推荐阅读