使用骨干与sequ​​elize / postgres

时间:2013-03-16 02:30:29

标签: backbone.js

我正在创建骨干模型以与我的postgres数据库进行交互。我在客户端使用backbone.js,服务器端使用node.js / sequelize.js。骨干教程中给出的代码说明了这一点:

 var UserModel = Backbone.Model.extend({
    urlRoot: '/user',
    defaults: {
        name: '',
        email: ''
    }

});

这里他们使用RESTful url与用户sql数据库交互(我不知道那是什么)。有没有人有任何想法我怎么能参考我的postgres表?我感到困惑,不知道发生了什么事(这对我来说真的很新)

感谢。

1 个答案:

答案 0 :(得分:1)

RESTful URL只是使用RESTful原则的Web服务的URL。谷歌可以比我更好地解释,但基本的想法是将各种REST“动词”(GET,POST,DELETE等)集成到API中。例如,这是一组用于虚构用户API的RESTful动词+ url:

GET    /user   - returns a list of users
POST   /user   - creates a new user
DELETE /user/5 - deletes the user with ID 5
PUT    /user/5 - updates/edits the user with ID 5

如果您的服务器端设计相似,那么Backbone的效果特别好,但这不是必需的。

如果您的服务器端API不是RESTful,则只需覆盖模型和集合中的某些方法(很可能是destroyfetchsave,{{1 }},urlparsesync)执行适合您服务器的任何操作。

例如,您可能希望覆盖模型的toJSON方法,使其返回服务器的(unRESTful)URL:

url

或者,如果您的服务器返回带有“信封”的对象,例如:

url: function() {
    return 'www.example.com/some/very/not/RESTful/' + this.id + '/URL/example';
}

您可以修改解析以将其删除:

{
    type: 'envelope',
    payload: {
        type: 'user',
        name: 'Bob',
        id: 5,
    }
}

至于“我如何引用我的postgres表”,如果覆盖适当的方法,则调用适当的Backbone操作方法(parse: function(original) { return original.payload; } / fetch / save)您的模型和集合,Backbone将向您在destroy覆盖中定义的URL发出AJAX请求。然后,您的服务器可以使用您想要解释该请求的任何语言,并在PostgreSQL数据库上执行相应的操作。