Node.js / Express / Mongoose - 如何发送 JSON 以及对象视图?
Posted
技术标签:
【中文标题】Node.js / Express / Mongoose - 如何发送 JSON 以及对象视图?【英文标题】:Node.js / Express / Mongoose - How to Send JSON along with view of Object? 【发布时间】:2011-11-30 23:06:52 【问题描述】:当我使用 Mongo 在 Node/Express 中显示模型对象时,我想将 JSON 对象与视图一起传递。
当前路线(仅经过视图):
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 传递给视图?
谢谢!
【问题讨论】:
【参考方案1】:你应该看看JSON methods
在节点repl中:
> var document = a: 'first property', b: 'second property';
> JSON.stringify(document)
'"a":"first property","b":"second property"'
>
如果您需要以不同的方式响应路由(例如通过 ajax 请求),您可以将新参数传递给 url app.get('/page/:customurl.:format', ...
或检查存储在 req.headers
中的请求标头
if ( req.headers["HTTP_X_REQUESTED_WITH"] === "XMLHttpRequest" )
res.send(document);
else
res.render(...);
【讨论】:
酷。好吧,我想做什么,我不完全知道这是否有意义是响应纯 html 获取请求,对象为 JSON。有点像发送视图,然后让浏览器调用 .getJSON() 并返回 json。我想在 JSON 中使用整个页面属性,而不必从浏览器中调用它。 @tuddy 你总是可以在你的模板中设置一个<script id="document_object" type="object/json"><%= JSON.stringify(page) %></script>
,这样你就可以通过JSON.parse($("#document_object").html());
取回对象。以上是关于Node.js / Express / Mongoose - 如何发送 JSON 以及对象视图?的主要内容,如果未能解决你的问题,请参考以下文章
夺命雷公狗---node.js---17之项目的构建在node+express+mongo的博客项目2之一,二级路由
夺命雷公狗---node.js---16之项目的构建在node+express+mongo的博客项目1
夺命雷公狗---node.js---18之项目的构建在node+express+mongo的博客项目3头尾左侧分离法
夺命雷公狗---node.js---22之项目的构建在node+express+mongo的博客项目7之数据的修改
夺命雷公狗---node.js---19之项目的构建在node+express+mongo的博客项目4mongodb在项目中的基本引入
夺命雷公狗---node.js---20之项目的构建在node+express+mongo的博客项目5mongodb在项目中实现添加数据