我正在创建骨干模型以与我的postgres数据库进行交互。我在客户端使用backbone.js,服务器端使用node.js / sequelize.js。骨干教程中给出的代码说明了这一点:
var UserModel = Backbone.Model.extend({
urlRoot: '/user',
defaults: {
name: '',
email: ''
}
});
这里他们使用RESTful url与用户sql数据库交互(我不知道那是什么)。有没有人有任何想法我怎么能参考我的postgres表?我感到困惑,不知道发生了什么事(这对我来说真的很新)
感谢。
答案 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,则只需覆盖模型和集合中的某些方法(很可能是destroy
,fetch
,save
,{{1 }},url
,parse
和sync
)执行适合您服务器的任何操作。
例如,您可能希望覆盖模型的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数据库上执行相应的操作。