Node.js/Express/Mongoose - 如何发送JSON以及对象视图?

tud*_*ddy 1 json mongoose node.js express

当我使用Mongo在Node/Express中显示模型对象时,我想将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,
      }
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

我可以添加pagejson:page.toObject()到当地人然后放在pagejson我的页面上吗?当我尝试它在浏览器中显示为[object,Object]时.有没有简单的方法将JSON传递给视图?

谢谢!

LoG*_*LoG 6

你应该看看JSON方法

在节点repl中:

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

如果您需要以不同方式响应路由(例如,通过ajax请求),您可以将新参数传递给URL app.get('/page/:customurl.:format', ...或检查存储在其中的请求标头req.headers

if ( req.headers["HTTP_X_REQUESTED_WITH"] === "XMLHttpRequest" ) {
  res.send(document);
} else {
  res.render(...);
}
Run Code Online (Sandbox Code Playgroud)