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
中的所有字段, 加上 您分别在 Customer
和 Employee
中定义的字段。
我是 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
中的所有字段, 加上 您分别在 Customer
和 Employee
中定义的字段。