4

给定一个使用以下内容创建的全新项目:

$ slc lb project myapp

如何用放置在目录中的“客户”模型替换“用户”模型?客户应具有登录/注销等方法,并且“用户”不应作为 API 存在。此外,客户模型不应该是动态的。让我们假设客户应该有一个如下模式:models.json./models

  • 姓名
  • 电子邮件
  • 密码
  • 问题
  • 回答
  • 电话
  • 已验证
  • 数据创建

我已经玩了几天了,我的 google-fu 让我失望了。任何帮助表示赞赏。谢谢。

4

1 回答 1

4

这是惯用的方式:

  1. models.json中,重命名userCustomer

  2. models/customer.js中,将自定义方法添加到通过 models.json 创建的模型中:

    var app = require('../app');
    var Customer = app.models.Customer;
    
    Customer.myfn = function(cb) {
      // etc.
      cb();
    };
    

此外,客户模型不应该是动态的。让我们假设客户应该有如下模式

用于strict锁定属性:

{
  "Customer": {
    "options": {
      "base": "User",
      "strict": true
    },
    "properties": {
      // define properties (schema)
    }
  }
}

有关详细信息,请参阅模型定义参考。

根据此答案下方的评论进行更新

可以先代码创建模型,请参阅在引入之前构建的 LoopBack 示例应用程序中的customer.js 。models.json

以下是您应该在代码中执行的操作:

var app = require('../app');

var Customer = module.exports = loopback.createModel(
  'Customer',
  {
    name: 'string',
    // and all other more properties
  },
  {
    base: 'User',
    strict: true
  }
);

app.model(Customer);

这基本上app.bootmodels.json. 它应该将熟悉的 REST 路由添加到您的应用程序:GET /customersPOST /customers/loginPOST /customers/logout等。

如果没有看到您的代码不起作用并且不知道您所说的“不起作用”到底是什么意思,那么很难为您提供帮助。

于 2014-07-02T07:08:37.570 回答