簡體   English   中英

在 node/express ejs 中使用 JSON.stringify( obj )

[英]Working with JSON.stringify( obj ) in node/express ejs

我正在嘗試使用 JSON.stringify 將對象傳遞給我的視圖,但我不確定如何訪問對象中的元素。 這是我如何將對象傳遞給我的視圖:

const getTracking = (request, response) => {
    pool.query('SELECT * FROM tracking', (error, results) => {
        if (error) {
            throw error
        }
        var trackingObj = JSON.stringify(results.rows);
        response.render('pages/trackingInfo', {
            trackingObj: trackingObj
        });
    })
}

然后在我的 index.ejs 文檔中,我可以像這樣訪問我的對象:

<p><%= trackingObj %></p>

這會在瀏覽器中產生以下輸出(數據是從 postgres 數據庫中獲取的):

[{"wo_num":1,"completion_date":"2021-08-04T04:00:00.000Z","material":"test","description":"test","qty":1,"total_hours":null},
{"wo_num":2,"completion_date":"2021-08-05T04:00:00.000Z","material":"test2","description":"test2","qty":2,"total_hours":2},

有沒有辦法單獨訪問這個 JSON.stringify 對象的元素,以便我可以做一些事情,比如在表格中顯示它們?

 JSON.parse('<%- JSON.stringify(trackingObj) %>')

如果只想看內容也可以使用(會在終端上顯示

<% console.log(trackingObj) %>

為了更好的觀看:

<% console.table(trackingObj) %>

正如@Jayesh 評論的那樣,解決方案是使用如下索引訪問對象: trackingObj[0].material

要在表格中顯示元素,您可以按以下方式遍歷它們:

<% trackingObj.forEach(function(obj) { %>
<tr>
   <td> <%= obj.material %> </td>
   <td> <%= obj.wo_num %> </td>
<tr>
<% } %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM