# @elaraai/east-node-io 中文文档

规范地址：https://npmcn.com/package/%40elaraai/east-node-io/

版本：1\.0\.107
npm 元数据更新时间：2026-11-13T06:52:44.292Z
中文译文更新时间：2026-11-13T13:03:24.816Z
软件包许可：AGPL-3\.0-or-later

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40elaraai/east-node-io
原文对照：https://npmcn.com/package/%40elaraai/east-node-io/?lang=original
项目主页：https://github.com/elaraai/east-workspace#readme
源码仓库：https://github.com/elaraai/east-workspace

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：844 kB，121 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.0\.0
- 运行依赖：13 个
- peer 依赖：@elaraai/east 1\.0\.107，@elaraai/east-node-std 1\.0\.107
- 首次发布：2025-12-04T00:23:46.019Z
- 最新版本发布：2026-11-13T06:52:43.328Z
- 近 30 天下载量：3668（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：148（近 12 个月 148 个）

## 中文简介

节点上东方语言的 I/O 平台功能

## 安装

```sh
npm install @elaraai/east-node-io
```

也可以使用：`pnpm add @elaraai/east-node-io`、`yarn add @elaraai/east-node-io`、`bun add @elaraai/east-node-io`

## README

# 东节点 IO

> 节点上东方语言的 I/O 平台功能

[![License](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](https://npmcn.com/package/%40elaraai/east-node-io/LICENSE.md) [![Node Version](https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg)](https://nodejs.org/)

东节点 IO 提供类型安全 I/O 平台功能 [东](https://github.com/elaraai/east-workspace/tree/main/libs/east) 在Node.js上运行的程序,允许数据库操作,云存储,文件传输,NoSQL操作,文件格式处理,以及压缩.

## 特征

-   **SQL 数据库**: SQLite, PostgreSQL, MySQL 连接集, 微软访问( 只读)
-   **云存储**: S3和S3相容对象存储(MINIO等)
-   **文件传输**:促进遗留系统整合的FTP和SFTP
-   **无 SQL**: Redis 缓存和 MongoDB 文档存储
-   **文件格式**: XLSX (Excel), CSV, 以及 XML 解析和序列化
-   **压缩**: Gzip, Zip,和Tar 压缩和去压
-   **类型安全**: 完全东方类型系统集成
-   **自动同步 I/ 欧**: 所有操作使用 `implementAsync` 用于非阻塞 I/ 欧

## 安装

```bash
npm install @elaraai/east-node-io
```

## 快速启动

### SQL 数据库查询

```typescript
import { East, StringType, IntegerType, NullType } from "@elaraai/east";
import { SQL } from "@elaraai/east-node-io";

const getUserById = East.function([IntegerType], NullType, ($, userId) => {
    const config = $.let({
        host: "localhost",
        port: 5432n,
        database: "myapp",
        user: "postgres",
        password: "secret",
        ssl: East.variant('none', null),
        maxConnections: East.variant('none', null),
    });

    const conn = $.let(SQL.Postgres.connect(config));
    $(SQL.Postgres.query(
        conn,
        "SELECT name FROM users WHERE id = $1",
        [East.variant("Integer", userId)]
    ));
    $(SQL.Postgres.close(conn));

    return $.return(null);
});

const compiled = East.compileAsync(getUserById.toIR(), SQL.Postgres.Implementation);
await compiled(42n);
```

### S3 文件上传/下载

```typescript
import { Storage } from "@elaraai/east-node-io";
import { East, StringType, BlobType } from "@elaraai/east";

const uploadFile = East.function([StringType, BlobType], StringType, ($, filename, data) => {
    const config = $.let({
        region: "us-east-1",
        bucket: "my-bucket",
        accessKeyId: East.variant('none', null),
        secretAccessKey: East.variant('none', null),
        endpoint: East.variant('none', null),
    });

    $(Storage.S3.putObject(config, filename, data));
    return Storage.S3.presignUrl(config, filename, 3600n);
});

const compiled = East.compileAsync(uploadFile.toIR(), Storage.S3.Implementation);
const url = await compiled("report.pdf", pdfBlob);
```

### 红色缓存

```typescript
import { East, StringType, OptionType } from "@elaraai/east";
import { NoSQL } from "@elaraai/east-node-io";

const cacheGet = East.function([StringType], OptionType(StringType), ($, key) => {
    const config = $.let({
        host: "localhost",
        port: 6379n,
        password: East.variant('none', null),
        db: East.variant('none', null),
        keyPrefix: East.variant('none', null),
    });

    const conn = $.let(NoSQL.Redis.connect(config));
    const value = $.let(NoSQL.Redis.get(conn, key));
    $(NoSQL.Redis.close(conn));

    return $.return(value);
});

const compiled = East.compileAsync(cacheGet.toIR(), NoSQL.Redis.Implementation);
const cached = await compiled("user:42");  // some("...") or none
```

### 文件格式处理

```typescript
import { Format } from "@elaraai/east-node-io";
import { East, BlobType, IntegerType } from "@elaraai/east";

// Read Excel files
const countRows = East.function([BlobType], IntegerType, ($, xlsxBlob) => {
    const options = $.let({
        sheetName: East.variant('none', null),
    });

    const sheet = $.let(Format.XLSX.read(xlsxBlob, options));
    return $.return(sheet.size());
});

const compiled = East.compile(countRows, Format.XLSX.Implementation);
const rowCount = compiled(xlsxBlob);  // 100n
```

## 平台函数

### SQL 组合键

-   **SQL 点**数字 : `connect`, (中文(简体) ), `query`, (中文(简体) ), `select`, (中文(简体) ), `close`
-   **邮递SQL**数字 : `connect`, (中文(简体) ), `query`, (中文(简体) ), `select`, (中文(简体) ), `close`
-   **MySQL 数据**数字 : `connect`, (中文(简体) ), `query`, (中文(简体) ), `select`, (中文(简体) ), `close`
-   **访问**数字 : `open`, (中文(简体) ), `tables`, (中文(简体) ), `query`, (中文(简体) ), `close` (只读,.mdb/.accdb)

### 存储

-   **第3条**数字 : `putObject`, (中文(简体) ), `getObject`, (中文(简体) ), `deleteObject`, (中文(简体) ), `listObjects`, (中文(简体) ), `presignUrl`

### 转让

-   **FTP 调试**数字 : `connect`, (中文(简体) ), `put`, (中文(简体) ), `get`, (中文(简体) ), `list`, (中文(简体) ), `delete`, (中文(简体) ), `close`
-   **SFTP 系统**数字 : `connect`, (中文(简体) ), `put`, (中文(简体) ), `get`, (中文(简体) ), `list`, (中文(简体) ), `delete`, (中文(简体) ), `close`

### 无 SQL

-   **重写**数字 : `connect`, (中文(简体) ), `get`, (中文(简体) ), `set`, (中文(简体) ), `setex`, (中文(简体) ), `del`, (中文(简体) ), `close`
-   **蒙戈DB**数字 : `connect`, (中文(简体) ), `insertOne`, (中文(简体) ), `findOne`, (中文(简体) ), `find`, (中文(简体) ), `updateOne`, (中文(简体) ), `deleteOne`, (中文(简体) ), `close`

### 格式

-   **XLSX 密码**数字 : `read`, (中文(简体) ), `write`, (中文(简体) ), `info` - Excel电子表格处理
-   **简历**数字 : `parse`, (中文(简体) ), `serialize` - 带标题支持的逗号分隔值
-   **XML 数据**数字 : `parse`, (中文(简体) ), `serialize` - XML 文档树处理

### 压缩

-   **吉普语Name**数字 : `compress`, (中文(简体) ), `decompress` - Gzip压缩(1952年RFC)
-   **齐普**数字 : `compress`, (中文(简体) ), `decompress` - ZIP档案的创建和提取
-   **塔尔**数字 : `create`, (中文(简体) ), `extract` - TAR档案的创建和提取

## 发展

```bash
# Install dependencies
npm install

# Build TypeScript
npm run build

# Run tests (requires Docker)
npm run test:integration

# Start Docker services for development
npm run dev:services

# Stop Docker services
npm run dev:services:down

# Lint code
npm run lint
```

## 测试

集成测试需要多克运行真实的数据库和服务:

```bash
# Start all services (PostgreSQL, MySQL, MongoDB, Redis, MinIO, FTP, SFTP)
npm run dev:services

# Run full integration test suite
npm run test:integration

# Stop all services
npm run dev:services:down
```

## 文档

-   [使用指南](https://npmcn.com/package/%40elaraai/east-node-io/USAGE.md)
-   [发展标准](https://npmcn.com/package/%40elaraai/east-node-io/STANDARDS.md)
-   [贡献准则](https://npmcn.com/package/%40elaraai/east-node-io/CONTRIBUTING.md)
-   [许可证](https://npmcn.com/package/%40elaraai/east-node-io/LICENSE.md)

## Claude 代码插件

东方生态系统也运载a [克劳德代码](https://claude.com/claude-code) 插件 — East 语言技能, 实例搜索, 以及 East 代码的先发制人诊断 `elaraai` 市场:

```text
# Inside Claude Code
/plugin marketplace add elaraai/east-workspace
/plugin install east@elaraai
```

```bash
# From a terminal
claude plugin marketplace add elaraai/east-workspace
claude plugin install east@elaraai
```

## 许可证

版权(c)2025 Elara AI Pty有限公司

该项目根据GNU Affero General Public License v3.0 颁发许可证——见 [利比里亚](https://npmcn.com/package/%40elaraai/east-node-io/LICENSE.md) 详细文件.

## 依赖关系

-   **SQL 组合键**数字 : `better-sqlite3`, (中文(简体) ), `pg`, (中文(简体) ), `mysql2`, (中文(简体) ), `mdb-reader`
-   **存储**数字 : `@aws-sdk/client-s3`, (中文(简体) ), `@aws-sdk/s3-request-presigner`
-   **转让**数字 : `basic-ftp`, (中文(简体) ), `ssh2-sftp-client`
-   **无 SQL**数字 : `ioredis`, (中文(简体) ), `mongodb`
-   **格式**数字 : `xlsx` 用于Excel 文件处理

### 生态系统

-   **[东](https://github.com/elaraai/east-workspace/tree/main/libs/east)**: statical地打出,以表达为主的语言有可序列的IR. 运行跨 TypeScript, Python, C 等运行时间的可移植逻辑.
    
    -   [@elaraai/东边](https://www.npmjs.com/package/@elaraai/east): 有类型系统、表达式和参考JS编译器的核心语言SDK
-   **[东节点](https://github.com/elaraai/east-workspace/tree/main/libs/east-node)**: Node.js 平台用于I/O,数据库和系统操作的功能.
    
    -   [@elaraai/东节点-std](https://www.npmjs.com/package/@elaraai/east-node-std): 控制台、 文件系统、 获取、 加密、 时间、 路径、 随机
    -   [@elaraai/东-北-欧](https://www.npmjs.com/package/@elaraai/east-node-io): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, 压缩
    -   [@elaraai/东-节点-cli](https://www.npmjs.com/package/@elaraai/east-node-cli): 用于在 Node.js 运行 East IR 程序的 CLI
-   **[东 C](https://github.com/elaraai/east-workspace/tree/main/libs/east-c)**: C11本土运行时间用于执行东IR. 通过npm(发射器+每个平面的可选依赖)进行分配,并在每个GitHub放出上作为tarball.
    
    -   [@elaraai/东-克-克利](https://www.npmjs.com/package/@elaraai/east-c-cli): npm 发射器 – 安装匹配的本地二进制作为可选依赖
    -   `east-c`: Core 运行时间 – 类型系统,IR 解释器,内置,序列化(Beast2, JSON, CSV, East text)
    -   `east-c-std`: 控制台、 文件系统、 获取、 加密、 时间、 路径、 随机
    -   `east-c-cli`: 用于在本地运行 East IR 程序的 CLI
-   **[东 Py](https://github.com/elaraai/east-workspace/tree/main/libs/east-py)**: Python 运行时间,标准平台,I/O,以及数据科学平台功能. 发布至PyPI.
    
    -   [东平](https://pypi.org/project/east-py/): Core Python 运行时间——类型系统,IR编译器,212+内建,Cython加速热路
    -   [东平-上](https://pypi.org/project/east-py-std/): 控制台、 文件系统、 获取、 加密、 时间、 路径、 随机
    -   [东比欧](https://pypi.org/project/east-py-io/): SQLite, PostgreSQL, MySQL, MongoDB, Redis, S3, FTP, SFTP, XLSX, XML, 压缩
    -   [东-平-克利](https://pypi.org/project/east-py-cli/): 用于在 Python 运行 East IR 程序的 CLI
    -   [东平数据科学](https://pypi.org/project/east-py-datascience/) (平价)+ [@elaraai/东平数据科学](https://www.npmjs.com/package/@elaraai/east-py-datascience) (npm):优化(MADS, Optuna, ALNS, GoogleOR),ML(XGBoost, LightGBM, NGBoost, PyTorch, Lightning, GP), 贝叶斯推论(PyMC),可解释性(SHAP),相通性预测(MAPIE)
-   **[东方大学](https://github.com/elaraai/east-workspace/tree/main/libs/east-ui)**:已打入UI组件定义和React渲染器,外加VS代码预览.
    
    -   [@elaraai/东-伊](https://www.npmjs.com/package/@elaraai/east-ui): 50+ 键入的UI 组件用于布局,窗体,图表,表格,对话框
    -   [@elaraai/ 东- ui- 组件](https://www.npmjs.com/package/@elaraai/east-ui-components): 带有 Chakra UI v3 样式的反相渲染器
    -   [@elaraai/e3-ui (英语)](https://www.npmjs.com/package/@elaraai/e3-ui):e3 + UI桥-数据绑定, `e3.ui()` 任务,显示
    -   [@elaai/e3-ui-组件](https://www.npmjs.com/package/@elaraai/e3-ui-components): 为 e3 API 执行查询钩和预览组件
-   **[e3——东行发动机](https://github.com/elaraai/east-workspace/tree/main/libs/e3)**: 大规模运行东方管线的持久执行引擎。 类似Git的内容可处理存储,自动记忆,反应数据流,实时监测.
    
    -   [@elaraai/e3 请检查url=值 (帮助)](https://www.npmjs.com/package/@elaraai/e3): SDK 用于编写带有打字任务和管道的 E3 包
    -   [@elaraai/e3-core (英语)](https://www.npmjs.com/package/@elaraai/e3-core): 对象存储、数据流管弦器、执行状态
    -   [@elaai/e3型](https://www.npmjs.com/package/@elaraai/e3-types): e3 包的共享类型定义
    -   [@elaraai/e3-cli (英语)](https://www.npmjs.com/package/@elaraai/e3-cli)数字 : `e3 repo`, (中文(简体) ), `e3 package`, (中文(简体) ), `e3 workspace`, (中文(简体) ), `e3 dataflow run`, (中文(简体) ), `e3 watch`, (中文(简体) ), `e3 task logs` 命令
    -   [@elaraai/e3-api-客户端](https://www.npmjs.com/package/@elaraai/e3-api-client)远程 e3 寄存器的 HTTP 客户端
    -   [@elaraai/e3-api-服务器](https://www.npmjs.com/package/@elaraai/e3-api-server): 用于 e3 寄存器的 REST API 服务器
    -   [@elaraai/e3-api测试](https://www.npmjs.com/package/@elaraai/e3-api-tests): 共享 API 合规测试套件

## 链接

-   **网站**数字 : [https://elaai.com/ (中文(简体) )](https://elaraai.com/)
-   **东仓库**数字 : [https://github.com/elaraai/east-workspace/tree/main/libs/east 页面存档备份,存于互联网档案馆](https://github.com/elaraai/east-workspace/tree/main/libs/east)
-   **问题**数字 : [https://github.com/elaraai/east-workspace/issues (中文(简体) )](https://github.com/elaraai/east-workspace/issues)
-   **电子邮件**数字 : [支助@elara.ai](mailto:support@elara.ai)

## 关于埃拉拉

东方由 [Elara AI Pty有限公司](https://elaraai.com/)一个由AI驱动的平台 创造经济数字双胞胎 企业优化业绩。 Elara将业务目标、决定和数据结合起来,以帮助各组织在业务、采购、销售和客户参与以及项目和投资规划方面作出由数据驱动的决定。 东能给以埃拉拉解决方案的计算层,使得复杂的商业逻辑和数据能够以简单,类型安全和可移植的语言来表达.

* * *

_开发者 [Elara AI Pty有限公司](https://elaraai.com/)。 。 。 ._

* * *

_开发者 [Elara AI Pty有限公司](https://elaraai.com/)_

## 常见问题

### @elaraai/east-node-io 是什么？

节点上东方语言的 I/O 平台功能

### 如何安装 @elaraai/east-node-io？

在项目目录运行 npm install @elaraai/east-node-io，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@elaraai/east（1\.0\.107）、@elaraai/east-node-std（1\.0\.107）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @elaraai/east-node-io 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @elaraai/east-node-io 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @elaraai/east-node-io 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @elaraai/east-node-io 可以商用吗？

@elaraai/east-node-io 使用 AGPL-3\.0-or-later 许可。最严格的 Copyleft：除分发外，通过网络向用户提供基于它的服务也需要开源对应源码。闭源 SaaS 使用前务必评估。以上为概括，不构成法律意见，请以许可原文为准。

### @elaraai/east-node-io 的下载量有多少？

根据 npm 官方下载统计，@elaraai/east-node-io 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,668 次，日均约 122 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @elaraai/east-node-io 还在维护吗？

最新版本 1\.0\.107 发布于 2026/11/13（今天）；至今共发布 148 个版本，其中过去 12 个月发布了 148 个；首次发布于 2025/12/04。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

