【发布时间】:2015-12-05 02:24:35
【问题描述】:
我在 mongo 中有以下基本文档:
connecting to: test
> db.car.find();
{ "_id" : ObjectId("5657c6acf4175001ccfd0ea8"), "make" : "VW" }
我正在使用 express、mongodb 本地客户端(不是 mongoose)和 ejs。
collection.find().toArray(function (err, result) {
if (err) {
console.log(err);
} else if (result.length) {
console.log('Found:', result);
mk = result;
console.log('mk = ', mk);
} else {
console.log('No document(s) found with defined "find" criteria!');
}
//Close connection
db.close();
});
}
});
这里是渲染代码:
// index page
app.get('/', function(req, res) {
res.render('pages/index', { make: result });
});
我想将数据 make: VW 传递到我的 index.ejs 文件中:
<h2>Cars:</h2>
<h3>My favorite make is <%= make %>
这应该非常简单明了,但我只是不明白如何将“mk”变量(我可以将 console.log 传递到屏幕)以由 ejs 视图呈现?
【问题讨论】:
-
为了澄清,你的渲染代码中
result的输出是什么。您能否在渲染代码中console.logresult对象并将其添加到您的问题中? -
查询方法[find()]应该在路由方法[app.get()]中。然后,您可以将查询结果分配为
EJS变量,就像 Michelem 的答案一样。此外,我认为您使用node-mongodb-native模块来访问 MongoDB。如果你想以特定的形式存储数据,比如数字或日期,你应该使用像 Mongoose 这样的 ORM。否则,您的数据将存储为字符串。通常,在处理诸如“出生日期”之类的日期或诸如“总金额”之类的数字等时,这是一个问题。因此,每次要在计算中使用这些值时,都需要转换这些值。祝你好运.. -
$ node app-mongo.js 8080 是与mongodb建立的端口连接://localhost:27017/test 发现: [ { _id: 5657c6acf4175001ccfd0ea8, make: 'VW' } ] mk = [ { _id:5657c6acf4175001ccfd0ea8,品牌:'大众'}]
标签: node.js mongodb express ejs