Node.js的顶级选择:Lad框架

发表时间: 2022-07-01 00:00

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的Lad 是最好的Node.js框架,由前Express TC 和Koa团队成员制作。

Lad特征

Lad 拥有数十种功能,并且非常可配置。

微服务

这些微服务已针对安全性、性能和优雅重新加载进行了预配置。

  • Webapp 服务器 → web.js
  • API 服务器 → api.js
  • 作业调度程序 → bree.js
  • 代理服务器 → proxy.js

后端

  • Redis、会话、Flash toast 和模式SweetAlert2消息(使用支持Cluster、Sentinel等的ioredis)
  • 基于 Koa 的 webapp 和 API 服务器(使用 HTTP/2 进行生产!)
  • 内置分页(使用ctx-paginate)
  • 带有 BasicAuth 和版本控制的 RESTful API
  • 具有 cron 和人类可读语法的自动化作业调度程序(由Mongoose和Bree支持)
  • 基于护照的身份验证和基于组(类 Unix)的许可
  • Stripe 启发的错误处理
  • 带有通用数据库插件的 Mongoose 和 MongoDB
  • 带有Nodemailer和本地渲染的电子邮件模板引擎
  • 代理消除了对 Nginx 反向代理或 Apache 虚拟主机的需求
  • 通过内置的 i18n 翻译支持多语言(见配置)
  • 用于简单 SEO 的站点地图生成器

表现

  • 压缩和零膨胀方法
  • 基于流的文件上传
  • 优雅的重新加载、关闭和重新连接处理
  • 清单资产修订
  • 准备好 Amazon S3 和 CloudFront

开始使用

严格支持基于 Mac 和 Ubuntu 的操作系统(不支持 Windows)。

要求

请确保您的操作系统已安装以下软件:

  • Git - 参见GitHub 的安装教程
  • Node.js (v10+) - 使用nvm在任何操作系统上安装它
    • 安装后nvm需要运行nvm install node
    • 建议您安装yarn ,它是npm的替代品
  • MongoDB (v3.x+):
    • Mac(通过brew)brew tap mongodb/brew && brew install mongodb-community && brew services start mongodb-community:.
    • Ubuntu:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.listsudo apt-get updatesudo apt-get -y install mongodb-org

Redis (v4.x +):

  • Mac(通过brew):brew install redis && brew services start redis
  • Ubuntu:
sudo add-apt-repository -y ppa:chris-lea/redis-serversudo apt-get updatesudo apt-get -y install redis-server

安装

npm:

npm install -g lad

yarn:

yarn global add lad

用法

创建项目

lad new-projectcd new-project

首先,尝试在命令行上键入npm start(或)。yarn start这将向您显示您可以运行的所有脚本。

该start脚本(以及许多其他脚本)在后台使用nps和nps-utils。

该脚本接受一个<task>参数,而一个任务all将生成、监视和重新编译上述所有微服务。

只需打开http://localhost:3000进行测试!

npm:

npm start all

yarn:

yarn start all

调试

  • DEBUG- 使用调试输出进行调试(社区中广泛采用的包,用于跨所有 Node 包进行调试):
DEBUG=* ...
  • NODE_DEBUG- 调试节点内部模块:
NODE_DEBUG=* ...
MONGOOSE_DEBUG=true ...
  • TRANSPORT_DEBUG- 调试 Nodemailer 传输:
TRANSPORT_DEBUG=true

REDIS_MONITOR- 调试 Redis 使用MONITOR(使用@ ladjs/redis并传递参数):truemonitor

REDIS_MONITOR=true ...
  • REDIS_FRIENDLY_ERROR_STACK- 使用友好的错误堆栈消息调试 Redis(请参阅ioredis的showFriendlyErrorStack选项)
REDIS_FRIENDLY_ERROR_STACK=true ...

配置

环境变量

根据Twelve-Factor ,我们通过名为@ladjs/env的dotenv配置包简化了 Lad 项目的配置。

我们使用以下三个包来管理配置:

  • dotenv-extended - 允许我们.env在一个名为.env.schema
  • mustache - 允许我们在我们的配置文件中使用Mustache 模板语言.env.env.defaults
  • dotenv-parse-variables - 自动解析变量类型process.env(例如,FOO=4将设置process.env.FOO = 4为Number变量类型而不是 a String)

配置由以下按优先级顺序管理:

  • 文件内容位于config/index.js(读取process.env环境变量)
  • 目录下文件的内容config/environments/(为每个环境设置默认值,例如,您可以通过NODE_ENV=staging,它将加载文件config/environments/staging.js)
  • 用于覆盖默认值或设置所需的环境变量(例如NODE_ENV=production)
  • 环境配置在.env
  • 环境配置在.env.defaults

优先级是环境配置文件、环境变量,然后是.env文件。

基本上,如果dotenv已经检测到它被作为环境变量传递,它就不会设置环境变量。

查看config文件夹的内容以及.env.defaults的默认值。

持续集成和代码覆盖

以下是使用Codecov设置SemaphoreCI所需的简单步骤:

  • 转到SemaphoreCI并注册一个免费帐户
  • 将存储库推送到 GitHub 后,将其作为项目添加到 SemaphoreCI
  • 使用以下构建设置在 SemaphoreCI 上配置您的项目:
  • 在 Codecov 上添加您的项目并将令牌复制到剪贴板
  • 为您的项目转到 SemaphoreCI 的项目设置并添加CODECOV_TOKEN为环境变量(使用剪贴板中的内容)
  • 在 SemaphoreCI 上运行测试构建(“重建最新版本”)并检查以确保您的代码覆盖率报告在 Codecov 上正确上传
  • 确保您的README.md文件具有正确呈现的构建状态和代码覆盖率标记(如果您的 GitHub 存储库是私有的,您将需要使用来自每个提供商的不同标记链接)

—END—

开源协议:MIT license

开源地址:
https://github.com/ladjs/lad