2017-11-18 1 views
1

새로운 표현과 퍼그로 새로운 점을 생각해 봅니다. 멍청한 질문이라면 용서해주세요.하지만 한 가지 기능으로 만든 배열을 퍼그를 렌더링하는 경로로 전달하는 방법은 무엇입니까? 주형. 궁극적으로 배열을 반복하여 테이블로 렌더링하려고합니다.익스프레스의 옥/Pug 경로에 배열 전달

내 코드 - 우선 lodash 맵 메서드를 사용하여 파일에서받은 데이터로 배열을 만듭니다. * 편집 - 전체 코드 구조 추가 -

fs.readFile(file, 'utf8', function (err, data) { 
    if (err) { 
    console.log('Error: ' + err); 
    return; 
    } 

    var data = JSON.parse(data); 

    var newEventList = data.events.map(events => ({ 
    id: events.id , 
    name: events.name , 
    venue: events.place.name , 
    address: events.place.location.street + " " + 
    events.place.location.city + " " + events.place.location.zip , 
    coverPicture: events.coverPicture , 
    description: events.description , 
    startTime: events.startTime , 
    endTime: events.endTime 
    })); 
}); 

그래서 이제 newEventList라는 객체 배열을 갖게되었습니다. 흙에 대한

내 노선은 내 퍼그 템플릿을 테스트하기 위해 제목과 메시지를 추가

app.get('/', function (req, res, newEventList) { 
res.render('index', { title: 'Hey', message: 'Hello there!', 
    newEventList 
}) 
}) 

입니다. 내 퍼그 템플릿에서 나는

h1= message 
p= newEventList 

을 가지고 있지만 나는 긴 오류 메시지가 도착 렌더링되는 단락 -

function next(err) { // signal to exit route if (err && err === 'route') { return done(); } // signal to exit router if (err && err === 'router') { return done(err) } var layer = stack[idx++]; if (!layer) { return done(err); } if (layer.method && layer.method !== method) { return next(err); } if (err) { layer.handle_error(err, req, res, next); } else { layer.handle_request(req, res, next); } } 

를 내가 무슨 일을하시기 바랍니다 뭐하는 거지?

답변

2

경로 정의의 콜백에서 newEventList을 제거하거나 세 번째 매개 변수로 바꿉니다.

예에서 newEventListdone/next 콜백에 할당됩니다. 따라서 단락에 기능이 인쇄되고 있습니다.

var newEventList = // Whatever value; 

app.get('/', function (req, res) { 
    res.render('index', { title: 'Hey', message: 'Hello there!', 
    newEventList 
    }) 
}) 
+0

감사합니다.하지만 data.events.map 함수가 다른 함수 안에 있다는 것을 언급하지 않았으므로 구현시 변수 범위 문제가 있다고 생각합니다. 따라서이 함수에서 newEventsList 배열을 반환하여 아래의 다른 함수에서 사용할 수 있도록해야한다고 생각합니다. 문제를 다시 작성해야 할 수도 있습니다. 나는 이것을 반영하기 위해 코드를 편집 할 것이다 ... –

+0

이것은 나의 원래 질문에 답했기 때문에 받아 들일 것이다. 감사 –