Loopback 中的动态模型

2024-05-09

如何在环回中创建动态模型,而不是对所有模型使用命令“lb model”。

例如: 如果我想创建 30 个具有几乎相同属性的模型,那么会遇到一次又一次创建所有 30 个模型和那些相应属性的麻烦。

是否可以创建模型并使用环回将其迭代到另一个模型。请分享您的答案。


嗯,我对此还很陌生,但我认为,您可以轻松地以编程方式创建任意数量的动态模型。例如,首先,在您的计算机中创建一个启动脚本boot目录,例如:server\boot\dynamic-models.js然后使用以下代码创建动态模型:

const app = require('../server');
const dbDataSource = app.datasources.db;
const schema = {
    "name": {
      "type": "string",
      "required": true
    },
    "email": {
      "type": "string",
      "required": true
    }
};

const MyDynamicModel = dbDataSource.createModel('MyDynamicModel', schema);

app.model(MyDynamicModel);

The app导出自projectroot/server/server.js,因此您可以在脚本中需要它。

此外,模式是可选的(在 noSql/mongo 的情况下)。创建动态模型后,您可以访问 api 资源管理器并可以查看动态创建的模型/端点。

如果您要创建更多模型,那么您只需执行循环并创建模型即可,例如:

const models = ['ModelOne', 'ModelTwo'];
// or export from other files and import those here, i.e:
// const schema = require('exported-from-another-file');
// const models = require('exported-from-another-file');
models.forEach(model => {
    app.model(dbDataSource.createModel(model, schema));
});

Update:多个模型动态注册的另一个工作示例:

// project-root/common/dynamic/index.js
module.exports.schema = {
    "name": {
        "type": "string",
        "required": true
    },
    "email": {
        "type": "string",
        "required": true
    }
};

module.exports.models = [
    'ModelOne',
    'ModelTwo'
];
// project-root/server/boot/dynamic-models.js
const app = require('../server');
const dbDataSource = app.datasources.db;
const {schema, models} = require('../../common/dynamic');
models.forEach(
    model => app.model(dbDataSource.createModel(model, schema))
);

现在,要使用相同架构添加任何动态模型,您只需在 models 数组中添加模型名称即可。这已经过测试并且工作正常:

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

Loopback 中的动态模型 的相关文章

  • 环回模型中的动态属性或聚合函数

    我将如何在环回模型中使用聚合函数 如果我有一个由 mysql 数据库支持的模型 我是否可以让 Model1 与 Model2 具有 hasMany 关系 具有给定的数字属性 并在 Model1 中拥有一个从 Model2 获取该字段的 SU
  • 带环回的文件上传

    我使用 Loopbackjs 创建了一个简单的文件上传应用程序 在应用程序的客户端中 我使用了简单的 HTML 和 Javascript 代码 通过 AJAX 调用来调用环回 api upload input on change funct
  • 在loopback.io中进行连接查询

    我正在尝试使用 Loopback io 构建一个简单的应用程序作为我的学习过程 我已经设置了项目 创建的模型和 API 工作正常 现在我正在尝试创建一个自定义 api 它可以通过进行联接查询从两个不同的模型获取数据 所以我有两个模型 sto
  • 在登录时从 Azure Active Directory 生成环回用户(反应本机应用程序)的最佳实践是什么?

    我有一个带有expo sdk的react native应用程序 使用loopback 3作为我的后端 我试图向其中添加Azure Active Directory授权和身份验证 以便我的用户可以使用他们的工作电子邮件和密码登录 我正在考虑如
  • LoopBack:如何在代码中动态创建自定义 REST 端点(即时)

    我们使用 LoopBack REST 框架来公开我们的数据库 和业务逻辑 我们需要允许客户在数据库 单租户和多租户 中创建自定义表 这些表可以通过 REST 端点进行访问 所有客户都需要使用相同的通用 生产 REST 端点 这些端点将公开在
  • Strongloop:用[and]和[or]条件一起过滤数据

    我正在尝试使用 and 和 or 条件过滤数据 我想得到这个 mySql 查询 SELECT FROM data WHERE property1 11 OR property1 13 AND property2 6 我写的其余 api 是这
  • 如何让 slc 命令在 Ubuntu 上运行?

    我已经使用安装了 Strongloopnpm install g strongloop在我的 Ubuntu 14 04 服务器上 这slc命令不起作用 它说 The program slc is currently not installe
  • 使用loopback.js和MongoDB自动增量

    我想使用环回自动增加 mongodb 文档数量 我在mongo中做了函数 function getNextSequence name var ret db counters findAndModify query id name updat
  • NodeJS 如何将 JS 文件导入 TypeScript

    我是 TypeScript 新手 我目前正在学习 NodeJS环回4使用 Typescript 语言的框架 我的问题是如何将 JS 文件中导出的一些函数 类导入到我的 TS 文件中 经过多种方式搜索后 但它仍然不适合我 这是例子 src i
  • 环回 - 包括关系的计算属性

    我有一个环回应用程序 我希望能够在 API 调用中包含关系的计算属性 例如 假设我有一个apartment模型和一个address模型 这address有属性city and state 我想向公寓模型打一个电话 并将城市和州作为相关信息中
  • 使 Loopback API Ember.js 兼容

    我正在尝试使用 Loopback 来获取与 Ember 对话的 API Ember 要求 JSON 包含在 键 中 例如对于一个帐户 account domain domain com subdomain test title test d
  • 多用户角色环回

    我正在尝试使用 Loopback 作为后端来制作一个应用程序 我以前已经使用过环回 但现在我想做一些我以前从未做过的事情 我想要的很简单 我将有 3 种类型的用户 管理员 服务者和默认用户 但是 我需要限制每种类型用户的访问控制 管理员可以
  • 如何设置 ACL 以允许每个人列出 REST API 中的所有用户

    我尝试使用 REST API 列出我的 Loopback 2 0 应用程序中的所有用户 但收到以下错误 error name Error status 401 message Authorization Required statusCod
  • Loopback4 中的事务支持吗?

    Loopback4如何支持事务 有没有类似的装饰器 比如 Transaction 我查看了这里的文档https loopback io doc en lb4 Repositories html https loopback io doc e
  • 使用 StrongLoop 自动创建 mysql 表

    我正在尝试将 Strongloop 与 MySql 一起使用 但无法弄清楚如何将表迁移或自动创建到 MySql 数据库中 是否至少有一种方法可以将模型导出到 MySql 架构中 或者我是否必须手动创建表 我一直在尝试使用 mysql 演示应
  • 错误:“主机标识符中存在双冒号”

    我正在尝试连接到我在 MLab 托管的数据库 我正在使用 StrongLoop API 我已将托管数据库的配置信息放入 datasources json 和 config json 文件中 但每当我使用以下命令运行目录时npm start
  • Swift 中的 StrongLoop 环回示例

    我正在尝试在 Swift 中实现示例 LoopBack iOS 应用程序 创建 LoopBack iOS 应用程序 第 1 部分 http docs strongloop com display DOC Creating a LoopBac
  • 如何在 Loopback 4 中使用有状态请求?

    在 v3 中 我们可以在底层 Express 上定义中间件 例如快速会话 https github com expressjs session 添加一个session请求对象上的属性 在 v4 中 看起来没有对应的东西 并且底层的 Expr
  • 如何配置 StrongLoop LoopBack MongoDB 数据源以部署到 Heroku

    我正在使用 LoopBack 版本 1 6 并使用以下数据源配置运行本地 mongoDB 服务器进行开发 mongodb defaultForType mongodb connector loopback connector mongodb
  • Strongloop 环回 如何使用路由进行静态服务?

    我想做类似的事情 server js app use client loopback static dirname client using middleware json 但该示例仅适用于根 files loopback static p

随机推荐