我想做什么:有一个html表单,里面有文件输入.选择文件时,文件输入应上传文件,并获取文件ID,因此在提交表单时,文件ID将与表单一起发布并写入数据库.
更短的版本:我想用我的文件存储元数据(例如id).
听起来很简单,但我很难在LoopBack中做到这一点.
已经有一对夫妇的谈话(1,2)这个话题,既不似乎导致一个解决方案,所以我想这可能是找到一个一劳永逸的好地方.
最简单的解决方案是使用模型关系,但LoopBack不支持与文件存储服务的关系.凹凸.因此我们必须使用以File示例命名的persistedmodel ,并覆盖默认的create,delete,以便从我命名的文件存储模型中保存和删除Storage.
到目前为止我的设置:
name 和sizeurlobjectIdcreate因此可以先保存文件,然后将url其注入File.create()我在那里,根据这个LoopBack页面,我有ctx,里面应该有文件:
File.beforeRemote('create', function(ctx, affectedModelInstance, next) {})`
Run Code Online (Sandbox Code Playgroud)
什么ctx?
ctx.req:Express Request对象.
ctx.result:快速响应对象.
好的,所以现在我在Express页面上,非常迷失,这就是一个关于'正在解析的中间件'的东西,我不知道它可能是什么.
我觉得我很接近解决方案,任何帮助将不胜感激.这种方法对吗?
这是一个现实生活中的角度问题,我无法解决这个问题.我喜欢Angular,但这个问题现在让我烦恼不已.
扩展现有控制器功能的最佳实践是什么,并在我的应用程序的其他页面上使用扩展控制器?换句话说:如何在Angular中进行控制器继承?
编辑出来 - 2014年9月23日,不要认为我原来的用例的描述可以帮助访问者更好地理解我在这里的意思.我认为它将人们从真正的问题中解脱出来.
我的问题是我无法弄清楚如何使用LoopBack后端在一个请求中获得多级关系结构.我有3种型号:Continent,Country,County.我想做的是获得一个大陆,并接收所有国家和所有国家.
他们之间的关系:
ContinenthasMany Country,并且 Country属于ContinentCountryhasMany County,并且 County属于Country所以REST api调用/api/Continent/1返回
{
"id": 1
"name":"Europe"
}
Run Code Online (Sandbox Code Playgroud)
现在,我希望得到所有的国家和县Continent,所以我做了一个查询/api/Continent/1?filters[include]=country
不过,我还没有得到这些.
我应该进行什么样的查询才能获得包含关系级别的列表?像这样:
{
"id": 1,
"name": "Europe",
"country": [
id: 1,
name:"United Kingdom",
county:[
{id:1,name:"Avon"},
{id:2,name:"Bedfordshire"},
...
],
...
]
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我有一个问题我在Loopback的文档中找不到答案.
说我有模特Company和模特Employee.它Company和它之间有1Xn的关系Employees.当/api/Employees被调用时,服务器将返回所有员工.
我只想返回与请求列表的用户在同一公司的员工列表.
为此,我创建了一个远程钩子
Employee.beforeRemote('find', function(context, modelInstance, next) {
var reject = function() {
process.nextTick(function() {
next(null, false);
});
};
// do not allow anonymous users
var userId = context.req.accessToken.userId;
if (!userId) {
return reject();
}
//I get the details of the user who sent the request
//to learn which company does he belong to
Employee.findById(userId, function(err, user) {
if(!context.req.query.filter) context.req.query.filter={};
context.req.query.filter.where = {brandId:user.companyId};
console.log(context.req.query);
next();
});
});
Run Code Online (Sandbox Code Playgroud)
我认为这应该每次都有用,但是看起来它只有当find已经有一些像include这样的查询过滤器时才会起作用 - …