与父代一起提取 children/collection
Ampersand fetch children/collection with parent
在对集合进行提取时,加载 Ampersand 模型的子模型 属性 的合适方法是什么?
我有一个任务对象:
{
"id": 1
"projectId": 2 // child entity id
"name": "This task for project 1"
}
并且我创建了一个 Ampersand 模型:
var AmpModel = require('ampersand-model');
var Project = require('../project');
module.exports = AmpModel.extend({
props: {
id: ['number'],
projectId: ['number'],
name: ['string']
},
children: {
project: Project
}
});
还有一个合集:
var AmpCollection = require('ampersand-rest-collection');
var Task = require('./task');
module.exports = AmpCollection.extend({
model: Task,
url: '/api/task'
});
我的 API 非常简单,因为该应用程序仅将输入存储在内存中:
var _ = require('lodash');
var store = require('../data'); // this is a file with some init data
function get(id) {
return _.findWhere(store.tasks.data, { id: parseInt(id + '', 10) });
}
exports.list = function (req, res) {
res.send(store.tasks.data);
};
exports.add = function (req, res) {
var item = req.body;
item.id = store.tasks.id++;
store.tasks.data.push(item);
res.status(201).send(item);
};
exports.get = function (req, res) {
var found = get(req.params.id);
res.status(found ? 200 : 404);
res.send(found);
};
在 Entity Framework 中,我会在检索时包含子实体。 projectId
字段将映射到 projects
table 并且框架会为我处理它。
在 JavaScript 聊天室阅读 doco 和一些帮助后,我意识到我一直在错误地看待这个架构。
我的 API 应该读取任务数据源并使用检索到的项目 ID 加载项目数据。项目对象将分配给任务上的 projects
属性 并返回整个任务对象。然后,&符号将接管并 assemble 我的模型如预期的那样。
在对集合进行提取时,加载 Ampersand 模型的子模型 属性 的合适方法是什么?
我有一个任务对象:
{
"id": 1
"projectId": 2 // child entity id
"name": "This task for project 1"
}
并且我创建了一个 Ampersand 模型:
var AmpModel = require('ampersand-model');
var Project = require('../project');
module.exports = AmpModel.extend({
props: {
id: ['number'],
projectId: ['number'],
name: ['string']
},
children: {
project: Project
}
});
还有一个合集:
var AmpCollection = require('ampersand-rest-collection');
var Task = require('./task');
module.exports = AmpCollection.extend({
model: Task,
url: '/api/task'
});
我的 API 非常简单,因为该应用程序仅将输入存储在内存中:
var _ = require('lodash');
var store = require('../data'); // this is a file with some init data
function get(id) {
return _.findWhere(store.tasks.data, { id: parseInt(id + '', 10) });
}
exports.list = function (req, res) {
res.send(store.tasks.data);
};
exports.add = function (req, res) {
var item = req.body;
item.id = store.tasks.id++;
store.tasks.data.push(item);
res.status(201).send(item);
};
exports.get = function (req, res) {
var found = get(req.params.id);
res.status(found ? 200 : 404);
res.send(found);
};
在 Entity Framework 中,我会在检索时包含子实体。 projectId
字段将映射到 projects
table 并且框架会为我处理它。
在 JavaScript 聊天室阅读 doco 和一些帮助后,我意识到我一直在错误地看待这个架构。
我的 API 应该读取任务数据源并使用检索到的项目 ID 加载项目数据。项目对象将分配给任务上的 projects
属性 并返回整个任务对象。然后,&符号将接管并 assemble 我的模型如预期的那样。