Javascript 如何覆盖Strongloop环回框架项目中的基本用户?

Javascript 如何覆盖Strongloop环回框架项目中的基本用户?,javascript,loopbackjs,strongloop,Javascript,Loopbackjs,Strongloop,给定一个全新的项目,该项目由以下内容创建: $slc lb project myapp 如何将models.json中的“user”模型替换为/models目录中的“customer”模型?客户应具有登录/注销等方法和“用户”不应作为API存在。此外,客户模型不应该是动态的。让我们假设客户应该有一个模式,如下所示: 名字 电子邮件 密码 问题: 答复 电话 证实 数据创建 我已经玩了几天了,我的谷歌浏览器让我失望。谢谢你的帮助。谢谢。这是惯用的方式: 在models.json中,将user重

给定一个全新的项目,该项目由以下内容创建:

$slc lb project myapp

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

  • 名字
  • 电子邮件
  • 密码
  • 问题:
  • 答复
  • 电话
  • 证实
  • 数据创建

我已经玩了几天了,我的谷歌浏览器让我失望。谢谢你的帮助。谢谢。

这是惯用的方式:

  • models.json
    中,将
    user
    重命名为
    Customer

  • 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)
        }
      }
    }
    
    有关更多详细信息,请参阅

    根据下面的评论更新此答案

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

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

    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.boot
    models.json
    中的所有条目执行的代码基本相同。它应该向应用程序添加熟悉的REST路径:
    GET/customers
    POST/customers/login
    POST/customers/logout
    ,等等


    如果没有看到不起作用的代码,不知道“不起作用”的确切含义,就很难帮助您

    谢谢你的回答。这是可行的,但最终这不是我想要的。实际上,我并不反对使用models.json,但是作为一种学习工具,我想尝试将这个客户模型与models.json完全分离。在我自己最初的尝试中,我将customer.js和customer.json文件放在/models文件夹中,这为我购买了漂亮的CRUD rest端点,但是它们缺少/login saint(我为customer使用了
    base:user
    属性)。也许我只是问错了问题,或者答案是;不要这样做,上面的方法就是这样做的。对不起,我没有得到通知,这个答案已经更新了。是的,代码优先是我想要的。我最终到达了那里,它基本上完全符合你上面所说的。从技术上讲,这是回答,但我的客户登录不工作。当我发布到
    /customer/login
    时,我的结果有id、ttl和userId。因为FK应该是customerId,所以我不能使用提供的accessToken。我想我会把它记下来,作为一个新问题来问。谢谢你的帮助。