2
我有app.js这段代码这是其中的“语言环境”集合中的所有内容找到一个回调:“没有法‘的forEach’类型错误”上的Node.js,EJS-Mongojs栈
tester = function(callback) {
db.locale.find({}, function(err, locale) {
callback(null, locale)
});
};
当“index”(主页)被访问时设置“title”变量,并将“locale”集合内容传递给变量“content”,事先将其“串化”(如果我不知道,我得到[object] ,本发明的课题):
app.get('/', function(req, res) {
tester(function(err, locale) {
res.render('index', {title: "This is a test server", content: JSON.stringify(locale)});
});
});
这的forEach在视图 “index.ejs”,其应该仅返回“标题”收藏领域的结果:
<ul>
<% content.forEach(function(item){ %>
<li><%= item.title %></li>
<% }); %>
</ul>
但无论如何,问题是,我得到一个“‘类型错误’没有法‘的forEach’”当我浏览的页面。什么会导致此行为?谢谢!
如果我读你的代码正确,你不应该'JSON.stringify(locale)'。你是从一个简单的'<%= content =>'获得'[object] [object]',然后选择将其串化?这是预料之中的,因为它会为简单的'content'标记调用toString(),但我希望它可以作为数组使用。当然会在Jade Express模板中。上面的内容实际上就是这个例子[EJS在其主页上显示](http://embeddedjs.com/)。 –
原来你和Scott Gress是对的!当执行'forEach'时,不需要Stringifiying,因为它返回一个字符串,而不是一个数组。当你只是在不操作它的情况下执行'<%= content%>'时,它会返回“[object] [Object]”。 – buggy3