我在app.js上有这个代码,这是一个回调,其中找到了“locale”集合的所有内容:
tester = function(callback) {
db.locale.find({}, function(err, locale) {
callback( null, locale )
});
};
当访问“index”(主页)时将其设置为“title”变量,并将“locale”集合内容传递给变量“content”“stringifying”它(如果我没有,我得到[object] ],[对象]):
app.get('/', function(req, res) {
tester(function(err, locale) {
res.render('index', {title: "This is a test server", content: JSON.stringify(locale)});
});
});
视图“index.ejs”中的 forEach ,它应该只返回“title”集合字段:
<ul>
<% content.forEach( function( item ){ %>
<li><%= item.title %></li>
<% }); %>
</ul>
无论如何问题是当我浏览页面时,我得到一个“'TypeError'没有方法'forEach'”。什么可能导致这种行为?谢谢!
答案 0 :(得分:2)
您在渲染之前对locale
对象进行字符串化。字符串没有forEach
方法,只有数组!只要您实际上没有计划将整个content
对象打印到页面,并假设locale
是一个Javascript对象,您可以完全跳过stringify部分,然后执行:
res.render('index', {title: "This is a test server", content: locale});