使用REST API通过ExtJS从MongoDB中检索数据

时间:2013-07-19 09:43:03

标签: mongodb rest extjs get httprequest

为了需要一个简单的演示器,我在ExtJS中创建了一个简单的网格面板,现在我正在尝试使用来自MongoDB的数据填充它。我听说过Node.JS和东西,但我只想使用MongoDB的REST API来检索数据。 注意:我是ExtJS和REST请求的新手。

我的问题是,在加载我的页面时,没有创建面板,firebug告诉我: “”NetworkError:400错误请求 - http://xxx.xxx.xx.xx:28017/mydb/device/find?_dc=1374225874880&page=1&start=0&limit=25“”

如果我复制并粘贴网址http://xxx.xxx.xx.xx:28017/mydb/device/find?_dc=1374225874880&page=1&start=0&limit=25,我可以看到数据,这意味着可以通过URL访问Mongo数据。 请注意,我不知道URL的“page = 1& start = 0& limit = 25”参数来自哪里,我没有实现它。

我应该加载数据的代码在我的MVC的Store组件中:

Ext.define('AM.store.Users', {
extend: 'Ext.data.Store',
model: 'AM.model.User',
autoLoad: true,
proxy: {
    type: 'rest',
url: 'http://xxx.xxx.xx.xx:28017/mydb/device/find',

    reader: {
        type: 'json',
        root: 'rows',
    idProperty: '_id'

    }
}
});

这就是显示Mongo网址的内容:

{
"offset" : 0,
"rows": [
 { "_id" : "SheevaPlug", "manufacturer" : "GlobalScale" }
],

"total_rows" : 1 ,
"query" : {} ,
"millis" : 0
}

模型中的映射似乎也是正确的:

Ext.define('AM.model.User', {
extend: 'Ext.data.Model',
fields: ['_id', 'manufacturer']
});

如果你能帮助我,请提前致谢! 欢呼声,

文森特

1 个答案:

答案 0 :(得分:0)

使用Node.js创建将使用Sencha调用的MongoDB Web服务。