2011-10-07 4 views
40

나는 새 페이지 렌더링 결과 인 서버에 대해 꽤 무거운 쿼리를 가지고 있으며 클라이언트의 쿼리 결과 중 일부를 객체의 자바 스크립트 배열로 전달하려고합니다. 이것은 기본적으로 동일한 컨텐츠 (대부분 정적 인)를 얻기 위해 나중에 별도의 JSON 쿼리를 수행 할 필요가 없습니다. 데이터는 결국 유용 할 것이지만 초기에는 그렇지 않으므로 직접 문서에 넣지는 않았습니다.노드 + 익스프레스 + 옥에서 클라이언트에 객체 전달?

app.get('/expensiveCall', function(req, res) { 
    // do expensive call 
    var data = veryExpensiveFunction(); 
    res.render('expensiveCall.jade', { 
     locals: { 
       data: data, 
       } 
     }); 
    }); 
}); 

데이터는 개체 배열이며 처음에는 일부만 사용됩니다. 데이터의 전체 또는 부분 집합 (상황에 따라 다름)을 전달하고 싶습니다. 나의 비취는 정상적인 옥처럼 보입니다. 그러나

과 같은 것을 포함하고 싶습니다. 그러나 이것은 작동하지 않습니다. 그것은 객체 배열입니다.

답변

87

당신은 그런 JS 객체를 인라인 할 수는 없지만 전에 JSON.stringify 수 있습니다

죄송합니다 이전 말했다해야
+1

<script type="text/javascript"> var data = !{JSON.stringify(data)}; </script> 
: 옥 모두 내가 또한 이스케이프 처리해야 할 것입니다 의미 컨텐츠를 방출 기약 탈출을 해제하는 방법이 명확하지 않습니다. 나는 표현 방법과 관련해 어떤 방법이 있다고 생각하지만, 어떻게 확신 할 수는 없다. 나는 다른 템플릿 엔진으로 전환 할 수는 있지만 코드를 포크하는 것을 의미 할 수 있습니다 :-(. – killermonkeys

+9

'# {} '대신'! {}'를 사용하면 이스케이프가 꺼져 야합니다 .. – Adrien

+0

ack! 감사합니다! – killermonkeys

관련 문제