# @empyria/moleculer 中文文档

规范地址：https://npmcn.com/package/%40empyria/moleculer/

版本：0\.1\.29
npm 元数据更新时间：2026-10-31T23:34:17.734Z
中文译文更新时间：2026-11-01T03:02:41.587Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40empyria/moleculer
原文对照：https://npmcn.com/package/%40empyria/moleculer/?lang=original
项目主页：https://github.com/empyria-nano/guard-moleculer#readme
源码仓库：https://github.com/empyria-nano/guard-moleculer

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

- 包体积（解压后）：36.1 kB，19 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=26
- 运行依赖：3 个
- 首次发布：2026-08-16T15:35:34.146Z
- 最新版本发布：2026-10-31T23:34:17.575Z
- 已发布版本数：28（近 12 个月 28 个）

## 中文简介

emyria的分子帮手

## 安装

```sh
npm install @empyria/moleculer
```

也可以使用：`pnpm add @empyria/moleculer`、`yarn add @empyria/moleculer`、`bun add @empyria/moleculer`

## README

# @empyria /分子

分子辅助物 **Empyria**一个主要构建在Bun上的纳米服务框架： 一个基本服务混合和一个上下文验证保护中间件免受不必要的影响 （未经身份验证或跨联邦）访问。

## 要求

-   包子 `>=1.4.0` 或node . js `>=26`
-   简单的ESM，没有构建步骤，没有TypeScript

这两个要求都来自 [@empyria /分类](https://github.com/imrefazekas/empyria-classification) 和 [@empyria /常见](https://github.com/imrefazekas/empyria-common)这个包裹 取决于和哪个使用本机 `Temporal` 全局用于所有日期/时间处理。

## 安装

```bash
bun add @empyria/moleculer
```

## 使用

```js
import { ServiceBroker } from 'moleculer'
import { BaseMixin, MetaGuard } from '@empyria/moleculer'

const broker = new ServiceBroker({
    middlewares: [MetaGuard({ resolveUser: true, whitelistedActions: ['v1.Internal.action'] })],
})

broker.createService({
    name: 'my-service',
    mixins: [BaseMixin],
    actions: {
        hello(ctx) {
            return `Hello, ${ctx.meta.user.actor}`
        },
    },
})
```

所有的东西都是从包根目录通过 [Mixins.js](https://npmcn.com/package/%40empyria/moleculer/Mixins.js)． 代理 连接助手和底层实用程序是单独的子路径导出，可直接导入：

```js
import { connect } from '@empyria/moleculer/Connector.js'
import { hashPassword, verifyPassword } from '@empyria/moleculer/util/Crypto.js'
```

## 模块

| 模块 | 目的 |
| --- | --- |
| [Mixins.js](https://npmcn.com/package/%40empyria/moleculer/Mixins.js) | 包入口点；再出口 `BaseMixin` 和 `MetaGuard`. |
| [MetaGuard.middleware.js](https://npmcn.com/package/%40empyria/moleculer/MetaGuard.middleware.js) | `MetaGuard` -一个分子中间件，保护动作/事件免受不必要的访问，可选的调用者解析。 |
| [mixin / Base.mixin.js](https://npmcn.com/package/%40empyria/moleculer/mixins/Base.mixin.js) | `BaseMixin` -在服务启动时标记一个Empyria元（参与者/联邦/流/进程id），并公开包的版本。 |
| [mixin / Connector.mixin.js](https://npmcn.com/package/%40empyria/moleculer/mixins/Connector.mixin.js) | `ConnectorMixin` -增加可选的Redis/Mongo设置。 **尚未从 `Mixins.js`** -见下文。 |
| [Connector.js](https://npmcn.com/package/%40empyria/moleculer/Connector.js) | `connect` -启动一个分子代理并等待所需的服务。 |
| [util / Context.js](https://npmcn.com/package/%40empyria/moleculer/util/Context.js) | 上下文帮助: `getParams`， `getUser`， `validateContext`， `actionStamped`， `timeStamped`， `checkDefined`. |
| [util / Crypto.js](https://npmcn.com/package/%40empyria/moleculer/util/Crypto.js) | 哈希、Ed25519签名/验证和密码哈希(`hashPassword`/`verifyPassword`）。 |

### 众所周知的局限: `ConnectorMixin`

`mixins/Connector.mixin.js` 导入 `@empyria/redis` 和 `@empyria/mongo`，这些都不是 作为独立包发布。它被故意省略了 [Mixins.js](https://npmcn.com/package/%40empyria/moleculer/Mixins.js) 桶，以便包的其余部分保持可导入——在这两个部分发布之前，只使用它 通过直接子路径导入(`@empyria/moleculer/mixins/Connector.mixin.js`)，它会在哪里 无法解决。

每个导出的函数都直接用JSDoc记录在其源文件中——悬停 VSCode或Zed中的函数显示其参数和返回类型，不需要任何额外的内容 工具，因为两个编辑器都从plain读取JSDoc `.js` 自动文件。

测试在 [测试/](https://npmcn.com/package/%40empyria/moleculer/test/)，每个模块一个文件，与源文件分开。几个 锻炼身体 `moleculer` `ServiceBroker` 而不是嘲笑。

## 脚本

```bash
bun run format       # check formatting (oxfmt)
bun run format:fix   # apply formatting
bun run lint         # lint (oxlint)
bun run lint:fix     # lint and fix
bun run test         # run tests with coverage
```

## 许可证

MIT©Imre Fazekas

## 常见问题

### @empyria/moleculer 是什么？

emyria的分子帮手

### 如何安装 @empyria/moleculer？

在项目目录运行 npm install @empyria/moleculer，或使用 pnpm add / yarn add / bun add。

### @empyria/moleculer 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/empyria\_\_moleculer 是否存在。

### @empyria/moleculer 支持 ESM 还是 CommonJS？

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

### @empyria/moleculer 需要什么版本的 Node\.js？

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

### @empyria/moleculer 可以商用吗？

@empyria/moleculer 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @empyria/moleculer 还在维护吗？

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

