前言
在前端开发的过程中,我们常常会用到各种npm包,从jquery到react,再到angular等等,这些众多的npm包都大大地简化了我们的开发工作,使我们能够将精力更集中的放在业务逻辑上,而不是重复的基础开发中。在这篇文章中,我们将会介绍一款名为@bentley/ecschema-metadata的npm包,它的主要目的是用于建模和管理Bentley的资源,如iModel、元数据等。接下来我们将详细讲解它的使用方法及其API,以及如何使用它来完成前端开发中的一些业务场景。
安装
从npm获取软件包:
$ npm install @bentley/ecschema-metadata --save
构建
要使用@bentley/ecschema-metadata,首先需要构建@bentley/ecschema。1个或2个步骤易于构建,具体取决于您使用的前端构建工具。
1. 使用Webpack构建
首先,在您的项目中,您需要将以下行添加到webpack config中:
rules: [ { test: /\.(js|jsx|mjs)$/, loaders: [require.resolve('babel-loader')], include: [path.join(__dirname, '../src'), path.join(__dirname, '../node_modules/@bentley/ecschema/src/')], }, ]
这将确保webpack将我们的软件包和您自己的软件包联系起来,并正确构建。
接下来,您可以通过将以下行添加到webpack entry (入口)文件中来构建软件包:
import { createSchemaClassRegistry, deserializeXml } from '@bentley/ecschema-metadata'; // 以下为您的自定义代码
2. 直接使用构建后的文件
您可以直接从Github发布文件中获取已构建的文件(zip格式)。从中提取出您需要的文件,复制到项目目录的相应位置即可。
示例
接下来将通过示例代码来使用@bentley/ecschema-metadata。
创建模型
首先,让我们来创建一个模型。下面这段代码中的MyModel是我们自定义的模型名称,而'MyModelSchema'则是在ECSchema XML文件中定义的元素名。
import { Schema } from '@bentley/ecschema-metadata'; const MyModel = Schema.create('MyModelSchema', 1, 0, 0);
创建实体
接下来,我们将使用上一步中创建的模型来创建一个实体。
import { EntityClass } from '@bentley/ecschema-metadata'; const MyEntity = MyModel.createEntityClass('MyEntity');
添加属性
我们已经定义了一个实体,下一步,我们要添加属性。
import { PrimitiveType } from '@bentley/ecschema-metadata'; MyEntity.addProperty ('name', PrimitiveType.String);
完整的示例代码
将上述代码组合起来供您参考,这是一个完整的示例代码:
import { Schema, EntityClass, PrimitiveType } from '@bentley/ecschema-metadata'; const MyModel = Schema.create('MyModelSchema', 1, 0, 0); const MyEntity = MyModel.createEntityClass('MyEntity'); MyEntity.addProperty ('name', PrimitiveType.String);
API
@bentley/ecschema-metadata主要提供了一下类库给前端开发者使用。
Schema
用于创建和管理ECSchema的类。
Schema.create
创建新的Schema实例。
Schema.create(name: string, major: number, minor: number, revision: number): Schema
EntityClass
用于创建和管理ECSchema实例中的实体。
EntityClass.addProperty
向实体中添加属性。
EntityClass.addProperty(name: string, primitiveType: PrimitiveType): void
PrimitiveType
用于描述ECSchema实例中的数据类型。
PrimitiveType.String
数据类型为字符串。
PrimitiveType.String
PrimitiveType.Double
数据类型为双精度浮点型。
PrimitiveType.Double
PrimitiveType.Integer
数据类型为整型。
PrimitiveType.Integer
总结
@bentley/ecschema-metadata是一款非常实用的npm包,它能够使得建模和管理Bentley资源变得更加方便和高效,使用它能够大大提高我们前端开发的效率,同时该包的API也是非常易于使用,我们可以利用它来轻松的创建实体并添加属性。总之,@bentley/ecschema-metadata是一款非常好用的npm包,它为我们的前端开发工作提供了极大的帮助和便利。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/bentley-ecschema-metadata