如何在 Strongloop 环回脚手架项目中覆盖基本用户?

2024-06-11

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

$ slc lb project myapp

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

  • name
  • email
  • password
  • question
  • answer
  • phone
  • verified
  • 数据已创建

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


这是惯用的方式:

  1. In models.json, 改名user to Customer.

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

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

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

Use strict锁定属性:

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

See 模型定义参考 http://docs.strongloop.com/display/LB/Model+definition+reference更多细节。

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

可以先通过代码创建模型,请参阅客户.js https://github.com/strongloop/sls-sample-app/blob/5864de5e29c20b942145d15d171b5115f33817a1/models/customer.js在之前构建的 LoopBack 示例应用程序中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.boot对于所有条目models.json。它应该将熟悉的 REST 路由添加到您的应用程序中:GET /customers, POST /customers/login, POST /customers/logout, etc.

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Strongloop 环回脚手架项目中覆盖基本用户? 的相关文章

随机推荐