【问题标题】:Backbone app saving to localstorage but no mongodb骨干应用程序保存到本地存储但没有 mongodb
【发布时间】:2012-10-23 22:53:37
【问题描述】:

我的应用程序在 localstorage 上成功运行,并且我已经在我的机器上设置了 mongodb 并且可以插入数据等。但是当我尝试将数据保存到 mongodb 时没有任何反应。我认为它没有连接但不确定。

这是我从 localstorage 更改为 mongodb 的地方

   bb.model.Items = Backbone.Collection.extend(_.extend({    
     model: bb.model.Item,
     // localStorage: new Store("items"),
    url: '/api/rest/todo', 

据我所知,这应该是主干应用程序中唯一的变化。此代码位于 C:\work\ToDo\site\public\js.

html 文件位于 C:\work\ToDo\site\public

我的服务器代码在这里 http://jsbin.com/akacif/2/watch 我从 C:\work\ToDo\node\lib

运行

有什么想法吗?

【问题讨论】:

    标签: javascript mongodb backbone.js local-storage


    【解决方案1】:

    您是否正确设置了模型的idAttribute

    从文档中,

    模型的唯一标识符存储在 id 属性下。如果 您直接与后端(CouchDB、MongoDB)进行通信 使用不同的唯一键,您可以将模型的 idAttribute 设置为 透明地从该键映射到 id。

    var Meal = Backbone.Model.extend({
      idAttribute: "_id"
    });
    
    var cake = new Meal({ _id: 1, name: "Cake" });
    alert("Cake id: " + cake.id);
    

    【讨论】:

    • 我的服务器上有以下代码。我希望这会转换 id 的 util.fixid = function( doc ) { if( doc._id ) { doc.id = doc._id.toString() delete doc._id } else if( doc.id ) { doc. _id = new mongodb.ObjectID(doc.id) 删除 doc.id } 返回 doc }
    猜你喜欢
    • 2015-07-20
    • 2013-09-24
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    相关资源
    最近更新 更多