使用 Express Route 使用来自 Mongoose 的数据填充主干木偶视图

Posted

技术标签:

【中文标题】使用 Express Route 使用来自 Mongoose 的数据填充主干木偶视图【英文标题】:Populate Backbone Marionette Views with data from Mongoose using Express Route 【发布时间】:2013-03-02 05:29:29 【问题描述】:

我正在尝试使用节点/快速路由获取数据/api,其中数据存储在 mongo/mongoose 中,并将其显示在 Backbone Marionette 中...

我使用的路线是这样的:

enter code here`app.get('/cats', function(req, res)
Cat.find(, function (err, docs) 
res.send(docs);
  );
);

2) 当我转到 localhost:3000/cats 时,我得到的 json 工作如下:

[

"__v": 0,
"_id": "51318ce9a7ff43f808000003",
"catname": "Jonas"
,

"catname": "Justin",
"_id": "51416268a8225e7413000001",
"__v": 0
,

"catname": "Bobby",
"_id": "51416268a8225e7413000001",
"__v": 0

]

3) 现在如何让 collection/model/itemview/etc 使用我的数据库中的这个 json 数据?

我通常会走到这一步:

MyCat = Backbone.Model.extend();

MyCats = Backbone.Collection.extend(
model: MyCat,
url: '/cats'
);

CatView = Backbone.Marionette.ItemView.extend(
template: "#cats-template",
tagName: 'li',
className: 'cat'
);

AngryCatsView = Backbone.Marionette.CompositeView.extend(
tagName: "ul",
id: "cats",
template: "#cats-template",
itemView: CatView,

appendhtml: function(collectionView, itemView)
collectionView.$("ul").append(itemView.el);

);

但是我不确定要使用哪种类型的初始化程序。 我见过硬编码 json 的例子,但没有一个来自 db。

【问题讨论】:

问题是这样... var thecats= myCats(); thecats.fetch();希望它可以帮助某人... 【参考方案1】:

在您发布的代码中,您实际上没有从服务器获取您的集合。

试试这个:

var catCollection = new MyCats();
catCollection.fetch();

var angryCatsView = new AngryCatsView(collection: catCollection);
angryCatsView.render();

【讨论】:

【参考方案2】:

不确定这是否适用于您的情况,但在您的集合上,添加一个接受您的数据的解析方法。您可能有一个 Backbone 无法从中检索内部数据的嵌套数组。

parse: function(data) 
  return data[0];

我会在这个解析方法中添加一个调试点,看看传入的数据是否嵌套了数据。

【讨论】:

您没有尝试编写的代码是吗?您必须输入自己的数据以及返回的数据。在我的应用程序中,ServiceStack 返回嵌套到另一个对象中的数据,所以我必须做这样的事情。返回数据.CoreDataList;我只是把 data[0] 作为一个想法。您必须在 parse 函数中进行调试才能查看传入的内容。 抱歉,回复晚了,我一直在阅读不同的教程,但无法弄清楚。我尝试在集合和复合视图中进行解析。我正在尝试做的是与此类似的宁静路线,http//jsfiddle.net/w3r5B/ jsfiddle 示例未在浏览器中拉起。可以重新发一下链接吗? 我想通了,只需要获取集合。谢谢。【参考方案3】:

问题是... var thecats= myCats(); thecats.fetch(); 希望它可以帮助某人

【讨论】:

以上是关于使用 Express Route 使用来自 Mongoose 的数据填充主干木偶视图的主要内容,如果未能解决你的问题,请参考以下文章

Express Route & Socket io

当多个路径匹配时,Express 如何知道使用哪个路由器路径?

Express Route Not Called Node JS

express 中导入变量的问题,错误:Route.get() 需要回调函数

使用 ExpressJS 处理飞行前请求

一根Express Route同时支持ARM和ASM的VNET