2011-10-04 25 views
1

我想在使用Mongo的Node/Express中顯示模型對象時,將JSON對象與視圖一起傳遞。Node.js/Express/Mongoose - 如何發送JSON以及Object的視圖?

柯倫路線(只是路過的觀點):

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

你應該看看JSON methods

在節點REPL:(前通過AJAX請求)

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

如果你需要應對的方式不同的路線可以傳遞到一個新的參數鏈接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中提供整個Page屬性,而不必從瀏覽器調用它。 – tuddy

+1

@tuddy您可以在yout模板中設置一個'',因此您可以通過' ($( 「#document_object」)HTML())JSON.parse;'。 – LoG

+0

ohhh。這太妙了!是 – tuddy

相關問題