我正在构建一些需要从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
})
您认为我的代码有什么问题?
答案 0 :(得分:1)
删除查询中的forEach循环,并将结果数组映射到路径属性,即
app.get('/', function (req, res) {
user.find({}, { __v: 0, _id: 0}, function (err, result) {
if (err) throw err;
res.render('pages/index',{
path: result.map(u => u.imgs),
state: req.session.state
});
});
});
答案 1 :(得分:0)
您需要HTML标签,例如
<ul>
<% for(var i=0; i<path.length; i++) {%>
<li><%= path[i] %></li>
<% } %>
</ul>