Nodejs一table两种机型使用loopback框架

Nodejs one table two models using loopback framework

我是 Nodejs 新手,开始在环回框架中工作。

我的问题,

我有一个 table 供用户使用,我想用这个 table 制作两个模型,例如 员工模型和客户模型。

//模型-config.json

"users": {
    "dataSource": "mysqlDs",
    "public": false
  },

我有两个不同的控制器"employee.controller.js","customer.controller.js" 现在我正在尝试将两个模型合二为一 table 并在特定控制器中使用这些模型。

这是两个控制器的一些代码。

//customer.controller.js
module.exports = function customer(app) { 
    var Customer = app.models.users;

 Customer.AddCustomer(data, function (err, data) {
                console.log(data);  
 });

}

//employee.controller.js
module.exports = function employee(app) { 
    var Employee= app.models.users;
}

当我在客户控制器中调用我的客户模型函数 "AddCustomer" 时,它给了我错误 "undefined"

这里是客户型号代码:

module.exports = function (Customer) {

   Customer.AddCustomer = function (data, cb) {}
}

模型文件

{
  "name": "customer",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true

  },   

"properties": {.....}
}

有什么解决办法吗?

如果您打算使用 Loopback 结构,您将需要创建您的基本用户模型(不要将其命名为 User,否则它会干扰内置的 User 模型带有环回。

因此,您的基础模型可能类似于 CustomUser,其中 CustomUser.json 模型基于 PersistedModel:

{
  "name": "CustomUser",
  "base": "PersistedModel",
  "idInjection": true,
  "options": {
    "validateUpsert": true

  },   

"properties": {.....}
}

然后创建两个从 CustomUser(而不是 PersistedModel)扩展的新模型:

Customer.json

{
  "name": "Customer",
  "base": "CustomUser",
  "idInjection": true,
  "options": {
    "validateUpsert": true

  },   

"properties": {.....}
}

Employee.json:

{
  "name": "Employee",
  "base": "CustomUser",
  "idInjection": true,
  "options": {
    "validateUpsert": true

  },   

"properties": {.....}
}

当您在 sql 数据库上 运行 datasource.automigrate()datasource.autoupdate() 时,这将创建 3 个表,每个模型一个,但是两个具有 "base":"CustomUser" 将包含 CustomUser 中的所有字段, 加上 您分别在 CustomerEmployee 中定义的字段。