我是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
这有意义,但如果我将其更改为result: data[0]
,我只能显示1条记录。
以下是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
的所有记录?
答案 0 :(得分:1)
您实际上可以直接将数据转发到NSOperationQueue.currentQueue()!
方法,如下所示:
res.render
如果您只需要产品的名称,可以先循环数据,收集名称并将其存储在另一个列表中:
res.render('products', {
...
products: data
});
// in view.jade
for p in product
h3 #{product.Name}
答案 1 :(得分:0)
您是否尝试过data
?
编辑:
希望这有效
- productList = typeof(result) != 'undefined' ?
result : { }
for product in productList
for p in product
h3 #{p.Name}