【发布时间】:2018-07-29 08:43:40
【问题描述】:
我正在构建一些东西,我需要从 MongoDB 查询内容并使用 node.js 中的 EJS 模板在前端显示结果。
查询结果时一切顺利。我console.log()时返回所有数组值,但在前端使用EJS模板时,只返回一个值。
这是我查询结果的代码:
app.get('/', function (req, res) {
user.find({}, { __v: 0, _id: 0}, function (err, result) {
if (err) throw err;
result.forEach(function(u) {
console.log(u.imgs);
res.render('pages/index',{
path: u.imgs,
state: req.session.state
});
});
});
我在 EJS 中的代码:
<% for(var i=0; i<path.length; i++) { %>
<%= path[i] %>
<% } %>
这是user中的代码
var userSchema = mongoose.Schema ({
imgs: String
})
你认为我的代码有什么问题?
【问题讨论】:
-
你为什么要循环调用
res.render()?这将一个接一个地立即呈现n的页面数量,其中n是results数组的长度,因此从这个角度来看,您不会真的希望继续进行渲染调用作为您在浏览器中的视图将有效地保持清新时刻。另外,您能否向我们展示User架构定义以及您对前端的最终目标是什么,您是否尝试显示每个用户的图像路径? -
不,我不想显示每个用户的图像路径。我在
user模式中提供了代码。 @chridam -
那么你的预期输出是什么?
-
数组中有两个 2 值,但只有一个(第一个)出现。
标签: arrays node.js mongodb ejs