첫 번째 노드/익스프레스 앱을 구축 중이며 this tut을 따르고 있습니다.Node.js 이상의 익스프레스 - TypeError : 정의되지 않은 'forEach'속성을 읽을 수 없습니다.
나는 모든 JSON 데이터를 가져 와서 템플릿에 보내고 배열에 넣으려고하는 시점에 있습니다. 나는 CLI를 통해 응용 프로그램을 실행하려고하면, 다음과 같은 오류 얻을 :
디렉토리 구조를
var에의 blogsurlall 위치에 데이터 출력
hellotest.js
var routes = require('./routes/index');
var express = require('express');
var app = express();
var request = require("request");
var blogsurlall = "https://[JSON export URL location configured in a Drupal 8 view]";
app.set('view engine','ejs');
var server = app.listen (2000, function(){ console.log('Waiting for you on port 2000'); });
/* Get all global blogs data */
request({
url: blogsurlall,
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
blogsdata_all = body;
}
// Create blogs array for footer.
var blogs = [];
// Fill up the array with blogs.
blogsdata_all.blogs.forEach(function(item){
blogs = blogs.concat(item);
});
app.locals.blogsdata = blogs;
});
app.use('/', routes);
하는 index.js는 CLI 오류에서
var express = require('express');
var routes = express.Router();
routes.get('/', function(req, res){ res.render('default',{title: 'Home', body: 'blogsdata'}); });
routes.get('/about-us', function(req, res){ res.send('<h1>Lucius Websystems</h1>Amsterdam, The Netherlands'); });
routes.get('/about/:name?', function(req, res){ var name = req.params.name; res.send('<h1>' +name +'</h1>About text'); });
/* GET Blog detail page. */
routes.get('/blog/:blogid', function(req, res, next) {
// Place json data in a var.
var blogsdata = req.app.locals.blogsdata;
// Create array.
var blogItem = [];
// Check and build current URL
var currentURL = '/blog/' + req.params.blogid;
// Lop through json data and pick correct blog-item based on current URL.
blogsdata.forEach(function (item) {
if (item.title == currentURL) {
blogItem = item;
}
});
if (blogItem.length == 0) {
// Render the 404 page.
res.render('404', {
title: '404',
body: '404'
});
} else {
// Render the blog page.
res.render('blog-detail', {
blog: blogItem
});
}
});
module.exports = routes;
, 블로그 데이터도 배열로 읽을 수 반환되지 않습니다 나타납니다.
나는 여러 번 튜토리얼을주의 깊게 읽었으며, 실종되었다는 암시가있는 단계가 있다고 생각합니다.
누군가 블로그 데이터를 가져 와서 배열로 읽고 내 템플릿으로 출력 할 수 있도록 도와 주실 수 있습니까?
댓글의 문제 해결 제안에 대해서도 열립니다.
읽어 주셔서 감사합니다.
즉,'blogsdata_all.blogs'는 사용자가 생각하는 배열이 아닙니다. 그것이 실제로 무엇인지 확인 했습니까? – Carcigenicate