app.js使用JSON文件中的文章将allArticles初始化为全局变量。
app.locals.allArticles = dataFile.articles;articles.js (路由)获取应用程序数据并使其在articles.ejs页面中可用
router.get('/articles', function(req, res) {
var data = req.app.get('appData');
var articleTitles = data.articles;
res.render('articles', {
pageTitle: 'Articles',
pageID: 'articles',
articles: articleTitles
});
});header.ejs引用allArticles如下所示
<% allArticles.forEach(function(item) { %>
<%= item.name %>
<% }); %>问题:对PageID的引用或文章引发引用错误。
allArticles is not defined奇怪的是,对pageTitle的引用是通过..。
发布于 2017-03-08 15:43:17
成功地将数据从JSON文件传递到视图中,如下所示:
app.js使文章数组可供本地路由使用:
app.locals.allArticles = dataFile.articles;index.js (路由)接收应用程序数据,创建保存数据的数组,使用forEach函数传递数据,呈现在视图中:
router.get('/', function(req, res) {
var data = req.app.get('appData');
var allArticles = [];
data.articles.forEach(function(item) {
allArticles = item.title;
});
res.render('index', {
pageTitle: 'Home',
pageID: 'home',
articles: allArticles
});
});index.ejs (视图):
<% allArticles.forEach(function(item) { %>
<%= item.name %><br/>
<% }); %>发布于 2017-03-08 04:03:14
您将一个名为articles的视图变量传递给视图,而不是allArticles。重命名其中一个或另一个,以便它们匹配,错误就会消失。
发布于 2017-03-08 04:28:52
您将articles作为对象传递,而不是数组,我认为它是articleTitles,因此可以将EJS代码更改为:
<% articles.articles.forEach(function(item) { %>
<%= item.name %>
<% }); %>https://stackoverflow.com/questions/42662648
复制相似问题