[英]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.