在Strongloop中同时保存多个模型

时间:2015-06-28 14:47:33

标签: node.js forms rest relationships strongloop

我正在开发一个完全基于StrongLoop REST API作为后端的应用程序。

只有一个注册表格。用户填写个人详细信息以及他/她工作的公司的一些详细信息。用户和公司是独立的模型,并且具有“一个”关系。

验证+同时将表单保存到两个模型的最佳方法是什么? (最好是在一个请求中)

有一些事情可以使这成为可能,但我找不到任何关于它的文件,或者它有点难看:

  • 包含相关公司模型的POST请求,类似于GET请求中存在的过滤器[include]选项。
  • 在不实际保存模型的情况下获取验证错误的方法,因此您可以在两个模型验证后保存整个表单(但是,需要多个请求)
  • 将整个表单发送到用户模型,并保存公司模型服务器端。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用挂钩完成此操作:远程挂钩操作挂钩

远程挂钩是在调用远程之前或之后调用的触发器。

从执行特定高级创建,读取,更新或删除(CRUD)"操作"的所有方法触发操作挂钩。这些是应用程序模型继承的PersistedModel的所有方法。 远程钩子的示例:这进入了common / models

的.js部分
Person.afterRemote('create', function (context, Person, cb) {
        var Role = app.models.Role;
        var RoleMapping = app.models.RoleMapping;
        Role.findOne({
            where: {
                name: 'customer'
            }
        }, function (err, role) {
            role.principals.create({
                    principalType: RoleMapping.USER,
                    principalId: Person.id
                },
                function (err, principal) {
                    if (err) cb(err);
                    ...
                });
        });

操作挂钩示例:

Company.observe('after save', function(ctx, next) {
  console.log('Going to save employee..');
  next();
});