2011-10-04 4 views
1

Mongo를 사용하여 Node/Express에 모델 Object를 표시 할 때 JSON 객체를보기와 함께 전달하고 싶습니다.Node.js/Express/Mongoose - 객체보기와 함께 JSON을 보내는 방법은 무엇입니까?

Curren은 경로 (바로보기를 통과) :

app.get('/page/:customurl', function(req, res, next) { 
    Page.findOne({ customurl: req.params.customurl.toLowerCase()}, function(error, page) { 
    if (!page) return next(new NotFound('Document not found')); 
    res.render('pages/page_show.ejs', 
     { locals: { 
      title: 'ClrTouch | ' + page.title, 
      page:page, 
     } 
    }); 
    }); 
}); 

내가 지역 주민에 pagejson:page.toObject() 추가 한 다음 어딘가에 내 페이지에 pagejson를 할 수 있나요? 나는 그것을 시도했을 때 브라우저에서 [object, Object]로 나타났습니다. 뷰에 JSON을 전달하는 쉬운 방법이 있습니까?

감사합니다.

답변

6

당신은 노드 REPL에서 JSON methods

에 표시되어야합니다. (예 아약스를 통해 요청) 당신이 다른 방법으로 경로에 대응해야 할 경우에 새로운 매개 변수를 전달 할 수 있습니다

> var document = {a: 'first property', b: 'second property'}; 
> JSON.stringify(document) 
'{"a":"first property","b":"second property"}' 
> 

url app.get('/page/:customurl.:format', ... 또는 req.headers에 저장된

if (req.headers["HTTP_X_REQUESTED_WITH"] === "XMLHttpRequest") { 
    res.send(document); 
} else { 
    res.render(...); 
} 
+0

에 저장된 요청 헤더를 확인하십시오. 글쎄, 내가 뭘하고 싶은, 그리고 전이게 합당한 HTML을 JSON으로 사용할 수있는 개체와 요청을받을 응답하는 경우 전적으로 몰라요. 뷰를 보낸 다음 브라우저에서 .getJSON()을 호출하고 json을 반환하는 것과 같습니다. JSON에서 전체 페이지 속성을 브라우저에서 호출하지 않고도 사용할 수있게하려고합니다. – tuddy

+1

@tuddy yout 템플릿에서 언제든지 '을 설정할 수 있습니다. JSON.parse ($ ("# document_object") .html());'. – LoG

+0

오. 환상적입니다! 예 – tuddy