近年来,JavaScript 在前端开发中的应用越来越广泛,而 npm 作为一款优秀的 JavaScript 包管理器,也因此备受欢迎。今天我们来介绍一款名为 enigma-ts 的 npm 包,它是一个用于 Qlik Sense 开发的 TypeScript 客户端工具包。本篇文章将从安装 enigma-ts 到实际应用以及最佳实践,详细讲解 enigma-ts 的使用方法,并希望能为广大前端开发者提供帮助。
1. 安装 enigma-ts
使用 npm 进行 enigma-ts 的安装非常简单,只需在终端中输入以下命令即可:
npm install enigma-js enigma-ts
安装完成后,我们可以开始使用 enigma-ts 了。
2. enigma-ts 实践
2.1. 客户端初始化
在实际应用中,我们需要先进行客户端初始化。enigma-ts 通过 Qlik Sense 的 WebSocket API 和 enigma.js 进行网络通信。在 js 中,我们通过 require
或 import
载入并获取 enigma.js
,在 TypeScript 中,我们需要在文件头中加入以下代码:
import * as enigma from 'enigma.js'; import { enigma as enigmaTypes } from 'enigma-js';
上面这个代码中,enigma
和 enigmaTypes
就是 enigma-ts 包的两个重要的对象。其中 enigma
对应的是 enigma.js 的实例化对象,而 enigmaTypes
则包含了所有使用到的 Qlik Sense API 中的类型定义。
接着,我们可以在文件中使用以下代码初始化客户端:
const schema = require('./node_modules/enigma.js/schemas/12.589.0.json'); // enigma.js schema 版本号 const session:enigmaTypes.ISession = enigma.create({ schema, url: 'ws://localhost:4848/app/engineData', createSocket: url => new WebSocket(url), });
这里,我们创建了一个 session
对象来管理我们与 Qlik Sense 的连接。schema
参数指定了我们要使用的 Qlik Sense 引擎版本,url
参数指定了 WebSocket 的连接地址。注意,必须使用 createSocket
函数和 WebSocket
实例对象来替换默认实现,否则可能会导致与 Qlik Sense 引擎的通信失败。
2.2. 打开 Qlik Sense 的 app
成功初始化 enigma-ts 客户端后,我们可以打开一个 Qlik Sense 项目:
const global = await session.open(); const app = await global.openDoc('c3f45cbc-0c80-4f23-9ede-217fbe286026'); // app ID
这里,我们以 global
对象为基础,使用 openDoc
方法打开一个指定的项目并获取其对象。该方法返回的对象可以用于后续的 Qlik Sense API 调用。
2.3. Qlik Sense 的数据获取与操作
拿到 app 后,我们可以使用 enigma-ts 提供的 API 获取并操作 Qlik Sense 的数据。以下是一些例子:
-- -------------------- ---- ------- -- -- --- ------- ----- ------ - ----- ------------------ -- ------------- ----- ------ - ----- --------------------------- -- ----------------- ----- ----- - ----- -------------------------- ----- ------ - ----- ------------------ ----- ------------ - -------------------------------------------------- -- -------------------------- ------ -- ----- - -----
总之,enigma-ts 能够方便地让你在 Qlik Sense 与 TypeScript 中进行交互,并在代码中实现所有的数据操作,从而使得 Qlik Sense 开发变得更加简单。
3. 最佳实践
下面是一些使用 enigma-ts 进行 Qlik Sense 开发的最佳实践:
在每次调用 Qlik Sense API 之前,一定要使用
await
等待完成来避免因为未登录造成的问题。在数据量大的情况下,不要尝试去获取所有数据,而是尽量只获取所需数据,在 API 调用中尽量使用
select
以及其他过滤和聚合函数,以获取更快的响应速度。在使用 Qlik Sense 的文本引擎(
NPrinting
)之前,一定要先了解它的工作原理以避免性能问题。注意 Qlik Sense 项目的版本号,确保 enigma.js 和 enigma-ts 的版本号与 Qlik Sense 项目一致,以避免产生兼容性问题。
4. 结尾
本篇文章介绍了 enigma-ts 的安装与使用方法,并且提供了 Qlik Sense 开发中的最佳实践。enigma-ts 提供了一种简单易用的方法来获取和操作 Qlik Sense 数据,对于许多开发者来说,这可能会极大地提高他们的工作效率。如果你对 Qlik Sense 开发感兴趣,强烈建议你尝试一下 enigma-ts 并在实践中发现它的强大之处。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005533281e8991b448d0799