Node.js的Metarhia应用示例
概念
这是Node.js入门套件的逻辑延续,将所有系统代码移至依赖项中,即使用Metarhia技术栈。
本入门套件的目的是展示Metarhia和Metaserverless的最佳实践,提供结构和架构示例,展示上述技术的简洁性和高效性。
此实现的所有部分都针对可靠性、可扩展性、性能和安全性进行了优化。因此,如果您需要可读性并想学习代码,请从Node.js入门套件开始。
功能列表
- 提供自动路由的API,支持HTTP(S)和WS(S)
- 通过文件系统监视实现服务器代码实时重载
- 自动依赖加载器和插件
- 优雅关闭和应用程序重载
- 最小化代码量和依赖项
- 代码沙箱化以提高安全性和上下文隔离
- 多线程以提高CPU利用率和隔离性
- 在线程中服务多个端口
- 提供静态文件服务,带内存缓存
- 应用程序配置
- 简单的日志记录器和控制台重定向
- 数据库访问层(PostgreSQL)
- 客户端持久会话
- 单元测试和API测试示例
- 请求队列超时和大小限制
- API并行执行并发
- API方法执行超时
- 用于扩展的负载均衡
- 原型污染防护
- 更好的代码隔离
使用方法
- 需要node.js 18.x或20.x
- Fork并克隆此仓库(可选择订阅仓库更新)
- 运行
npm i
安装依赖项并生成RSA证书 - 如果项目不需要,请删除不必要的依赖项
- 在
LICENSE
文件中添加您的许可证,但不要删除入门套件的许可证 - 通过修改此入门套件开始您的项目
- 如果安装了Docker和Docker Compose,可使用以下命令运行项目:
docker-compose up
- 运行服务器前初始化数据库:
- 首先,确保已安装PostgreSQL(最好是12.x到16.x版本)
- 运行数据库初始化脚本:
database/setup.sh
- 运行项目:
node server.js
,按Ctrl+C停止 - 在Telegram中提问:https://t.me/nodeua(Node.js相关)或https://t.me/metaserverless(Metarhia相关)
许可证
版权所有 (c) 2020-2024 Metarhia贡献者。 此入门套件采用MIT许可证。