簡體   English   中英

如何在Express / Jade中從查詢中迭代和解析JSON?

[英]How to iterate and parse JSON from query in Express/Jade?

我是nodejs的新手,所以我認為這很簡單,但我找不到將JSON數據從select查詢傳遞到Jade視圖的方法。 我正在使用Visual Studio的Node.js工具來創建使用Express + Jade的項目。 這是我的index.js文件:

exports.products = function (req, res) {
var request = new sql.Request(connection);
console.log("Connection successful.");
request.query('SELECT * FROM product', function (err, data) {
    console.log(data[i]);
    res.render('products', {
        title: 'Products', 
        year: new Date().getFullYear(), 
        message: 'Products page with all devices',
        name: 'Rodney',
        result: data[i]
    });    
});

這是我在Jade中使用的視圖來呈現結果:

- product = typeof(result) != 'undefined' ? result : { }
for p in product
  h3 #{product.Name}

我得到錯誤i is not defined哪個有意義,但我只能顯示1條記錄,如果我將其更改為result: data[0] 以下是JSON結構的示例: { Id: 56, Name: 'Motion', ModelString: '1234-G', Description: 'Motion Front Door', Released: true, BoardId: 29, CreateDate: Wed Aug 05 2015 06:29:31 GMT-0500 (Central Daylight Time), SerialNumberCode: 'AAA', ExtensionId: 9, SKU: '1234-G', CurrentTest: false, ModelEncodingNumber: -1 }

如何顯示列name所有記錄?

您實際上可以直接將數據轉發到res.render方法,如下所示:

res.render('products', {
    ...
    products: data
});

// in view.jade
for p in product
    h3 #{product.Name}

如果您只需要產品的名稱,則可以先循環數據,收集名稱並將其存儲在另一個列表中:

var allNames = data.map(function(element) {
    return element.Name;
})

res.render('products', {
    ...
    names: allNames
});  

// view.jade
for name in names
    h3 #{name}

你試過傳遞data嗎?

編輯:

希望這有效

- productList = typeof(result) != 'undefined' ? 
result : { }
for product in productList
  for p in product
    h3 #{p.Name}

暫無
暫無

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

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