arrays - 从 mongodb 获取数据后渲染模板
问题描述
app.get('/clients', (req, res) => {
var clientArray;
MongoClient.connect('mongodb://localhost:27017/Clients', (err, db) => {
if (err) {
return console.log('Unable to Connect');
}
console.log('Connected to Mongodb server');
db.collection('Clients').find().toArray().then((docs) => {
clientArray = JSON.stringify(docs, undefined, 2);
// clientArray = docs;
console.log(clientArray);
}, (err) => {
console.log("ERROR")
});
db.close();
});
res.render('clients.hbs', {
infoArray: clientArray,
name: 'Harshit'
});
});
这里 res.render 函数在从 mongodb 数据库获取所需数据之前被调用。我想将作为数组获取的数据传递给车把模板。
{{#each infoArray}}
<h1>{{this.name}}</h1>
{{this.region}}
{{/each}}
在这里,我试图通过呈现的数组并显示数据。感谢任何帮助。数组的结构
[{
"name": "harshit",
"region": "delhi"
},
{
"name": "mendax",
"region": "ecuador"
}
]
解决方案
渲染必须在回调函数中:
app.get('/clients', (req, res) => {
var clientArray;
MongoClient.connect('mongodb://localhost:27017/Clients', (err, db) => {
if (err) {
return console.log('Unable to Connect');
}
console.log('Connected to Mongodb server');
db.collection('Clients').find().toArray().then((docs) => {
clientArray = JSON.stringify(docs, undefined, 2);
// clientArray = docs;
console.log(clientArray);
db.close();
res.render('clients.hbs', {
infoArray: clientArray,
name: 'Harshit'
});
}, (err) => {
console.log("ERROR")
db.close();
});
});
});
推荐阅读
- r - 使用列表元素的内容子集列表元素
- git - 命令行一直说 fileX :is a directory"
- reactjs - 上下文和提供者无法通过模态访问
- python - 盈透证券 Python API 错误 -1 322 处理请求
- facebook-graph-api - API 中未返回 Facebook 用户个人资料链接
- r - 如何在R中循环遍历mapply?
- swift - 如何在 Firestore 中使用文档 ID 创建复合索引
- java - 如何在java中每秒运行60次代码
- node.js - 在我的 slackbot 应用程序中,函数被节点执行两次
- javascript - 如何让全局变量留在角度构造函数和承诺中,调用需要来自 diff 组件的数据的函数