2013-03-16 139 views
1

我正在創建一個骨幹模型來與我的postgres數據庫進行交互。我在客戶端使用backbone.js,在服務器端使用node.js/sequelize.js。在骨幹教程中給出的代碼這樣說:使用骨幹與sequ​​elize/postgres

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

}); 

在這裏,他們正在使用一個RESTful URL一個用戶的SQL數據庫進行交互(我不知道那是什麼)。有沒有人有任何想法我可以參考我的postgres表?我非常困惑,不知道發生了什麼(這對我來說真的很新)

謝謝。

回答

1

RESTful URL只是使用RESTful原則的Web服務的URL。谷歌可以比我在這裏解釋得更好,但基本的想法是將各種REST「動詞」(GET,POST,DELETE等)集成到API中。舉例來說,這裏是一個假想的用戶API一套基於REST的動詞+網址:

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 

骨幹效果特別好,如果你的服務器端的設計相似,但它不是必需的。

如果你的服務器端API是不是平安,你只需要重寫你的模型和集合(最有可能的destroyfetchsaveurlparsesync,並toJSON)採取一切適當的某些方法爲您的服務器。

例如,您可能要覆蓋模型的url方法,使其恢復服務器的(unRESTful)網址:

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

或者,如果你的服務器有一個「信封」返回你的對象,例如:

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

可以修改解析剝離出來:

parse: function(original) { 
    return original.payload; 
} 

至於「我如何參考我的postgres表」,如果您重寫適當的方法,然後在模型和集合上調用相應的骨幹動作方法(fetch/save/destroy),Backbone會將AJAX請求發送到您的URL在您的url覆蓋中定義。然後,您的服務器可以使用您想要解釋該請求的任何語言,並在您的PostgreSQL數據庫上執行相應的操作。