我第一次开始使用restangular并努力访问嵌套文档。如果我有像这样的Mongoose模式:
var mongoose = require('mongoose');
module.exports = function Schemas() {
this.schema = mongoose.Schema;
this.EmployeeSchema = new this.schema({
'firstname': {
type: String,
required: true,
trim: true
},
'lastname': {
type: String,
required: true,
trim: true
},
'email': {
type: String,
required: true,
trim: true,
index: true,
validate: /\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/
},
'departmentId': {
type: this.schema.ObjectId,
trim: true,
required: true
},
'enddate': {
type: String,
trim: true
},
'active': {
type: Boolean,
"default": true
}
});
this.EmployeeSchemaModel = mongoose.model('employees', this.EmployeeSchema);
this.DepartmentSchema = new this.schema({
'name': {
type: String,
required: true,
trim: true,
index: {
unique: true
}
},
'employees': [this.EmployeeSchema]
});
this.DepartmentSchemaModel = mongoose.model('departments', this.DepartmentSchema);
mongoose.connect('mongodb://localhost:8120/staff');
};
要访问部门内的员工,我想我可以简单地执行以下操作:
var getEmployeeById = function(departmentId, empId) {
Restangular.one('departments',departmentId).one('employees', empId).get().then(function (emp){
return emp;
});
虽然我可以检索一个部门,但是当我这样做时,它有一个嵌套的员工数组,正确地填充了我期望的员工。我无法按照我的意图通过其ID来检索个别员工。我最终得到了404。
我做错了什么?
答案 0 :(得分:1)
我是Restangular的创造者。
我不知道100%Mongose如何使用Express或者你暴露API的方式,但我们的想法是你应该有一些嵌套的Restful Resources以及你的mongo文档中的“嵌套”。
因此,您应该有一些Rest API给出/ departments / 123请求返回部门123,并且给定/ departments / 123 / employees / 456返回部门123的员工456.如果您有Rest API那么,你将得到Restangular:D
的反应希望这适合你!