首页 文章

数据不会渲染到Node JS中的EJS页面

提问于
浏览
0

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

[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>

如果有人能帮助我,那将是很棒的 .

谢谢 .

3 回答

  • 1

    我希望以下答案可以解决您的问题 . 您正在使用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>
    
  • 0

    哦,这很容易,不要使用<%,使用<% - 代替 . 例如:

    <%- Jdata.length %>
    

    <%= 将在HTML中呈现 <%- 将呈现变量(因为它们是,eval)

  • 0

    注入脚本的每一行必须包装在 <% ...your snippet line... %> 中,因此我会将您的代码修改为:

    <% 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>
        <% } %>
    

相关问题