【发布时间】:2016-05-14 23:56:19
【问题描述】:
我有一个主干应用程序和一个 RESTful api。我使用 Coenraets 创建的示例来了解主干应用程序的架构,但我决定设置自己的结构并仅使用数据进行测试。
我想知道从 RESTful api 返回数据的最佳方式。我目前有我的应用程序文件夹结构设置,其中包含模型、集合、视图和服务文件夹。我有一个运行 express 的节点服务器,它处理后端并且工作正常。
我想知道的是访问restful data api的最佳实践是什么?我应该在我的服务类还是在我的视图类中这样做?如何使用从我的 restful api 返回的数据动态地使这项工作:http://localhost:3000/employees
似乎有很多方法可以做到这一点,现在我只想要一些可行的方法,但最终我确实想知道什么是最好的方法。最终我想要一个 CRUD 设置。但我不确定应该在哪里设置。类似于这里详述的内容:http://www.codeproject.com/Articles/797899/BackBone-Tutorial-Part-CRUD-Operations-on-Backbone
我的文件如下:
employeecolletion.js
var Backbone = require('backbone');
var Employee = require('../models/employeemodel.js');
module.exports = Backbone.Collection.extend({
model: Employee,
url:"http://localhost:3000/employees"
});
employeemodel.js
var Backbone = require('backbone');
var EmployeeCollection = require('../collections/employeecollection.js');
module.exports = Backbone.Model.extend({
urlRoot:"http://localhost:3000/employees"
// initialize:function () {
// this.reports = new EmployeeCollection();
// //this.reports.url = this.urlRoot + "/" + 1 + "/reports";
// }
});
employee.js(绑定到我的模板的员工视图)
var fs = require('fs');
var base = require('./base.js');
var EmployeeList = require('../collections/employeecollection.js');
var employeeService = require('../services/employeeService.js');
var template = fs.readFileSync('app/templates/employee.mu', { encoding: 'utf8' });
module.exports = base.extend({
el: '.view',
template:template,
collection: employeeService.collection,
initialize: function () {
this.viewModel = {
employee_list: this.collection.toJSON()
//employee_list: this.collection.fetch() --HERE I EXPERIMENTED WITH FETCHING THE DATA
};
this.render();
}
});
employeeservice.js(服务文件夹中的文件,理想情况下会返回我将绑定到他们员工视图文件中的模板的集合)
var EmployeeCollection = require('../collections/employeecollection.js');
//if wanting to pass in data manually
var employee_list = [
{
id:1,
firstName:"James",
lastName:"King",
fullName:"James King",
managerId:0,
managerName:"",
title:"President and CEO",
department:"Corporate",
cellPhone:"617-000-0001",
officePhone:"781-000-0001",
email:"jking@fakemail.com",
city:"Boston, MA",
pic:"james_king.jpg",
twitterId:"@fakejking",
blog:"http://coenraets.org"
}
];
//HERE I WAS EXPERIMENTING WITH A DIFFERENT SYNTAX TO DO THE FILTERING BY ID
//IN MY SERVICE AND SIMPLY RETURNING THE FINAL DATA I WANT TO MY VIEW CLASS
// var employees = new EmployeeCollection({id: id});
// employees.fetch({
// success: function (data) {
// console.log(data);
// }
// });
module.exports = {
collection: new EmployeeCollection(employee_list)
};
【问题讨论】:
-
我对制作自定义 api 了解不多,但我使用的大多数 api 只是收集和组织在 json 对象中。
标签: javascript backbone.js restful-architecture