Skip to content

ExpressJS - 脚手架

脚手架(Scaffolding)是为 Web 应用程序生成基本骨架的过程。它通过创建标准的项目结构、设置基本配置和包含常用中间件来节省时间,让您可以立即专注于构建应用程序的独特功能。

用于构建 Express 应用程序的官方工具是 express-generator。它是一个命令行工具,可以为您的项目创建一个结构良好的起点。

最简单的使用方式是借助 npx,它随 npm(5.2+ 版本)一起提供。npx 无需全局安装即可执行软件包命令。

# 在名为 'my-api-app' 的目录中生成一个新的 Express 应用程序
npx express-generator my-api-app --no-view
  • my-api-app:这是将创建您的新应用程序的目录名称。
  • --view=<engine>:指定要使用的模板引擎,例如 --view=ejs 或 --view=pug。模板引擎用于服务器端渲染 HTML。
  • --no-view:这是现代开发中的一个关键选项。它在没有视图引擎的情况下搭建项目,这非常适合创建将由独立的前端客户端(如 React、Vue 或移动应用程序)使用的 REST API。
  • --git:此选项会创建一个 .gitignore 文件,这对于任何使用 Git 版本控制的项目都是最佳实践。

生成的项目结构(适用于 REST API)

Section titled “生成的项目结构(适用于 REST API)”

运行 npx express-generator my-api-app --no-view --git 后,您将获得以下结构:

my-api-app/
├── app.js # 主应用程序配置文件
├── bin/
│ └── www # 可执行启动脚本(服务器逻辑)
├── .gitignore # 版本控制忽略的文件
├── package.json # 项目元数据和依赖项
├── public/ # 静态资源目录(图片、CSS 等)
└── routes/ # 路由定义目录
├── index.js
└── users.js
  • app.js:您应用程序的核心。它导入并使用中间件,连接您的路由,并设置错误处理。它配置应用程序,但不会启动它。
  • bin/www:这个文件是启动服务器的实际入口点。它从 app.js 导入 app 对象,设置端口,并开始监听 HTTP 请求。这种关注点分离是一种良好实践。
  • routes/:这个目录保存着您的路由处理器,按资源组织(例如,users.js 用于所有用户相关端点)。这使您的 app.js 保持清晰和有组织。

按照生成器提供的说明来运行您的应用程序:

# 1. 进入您的新项目目录
cd my-api-app
# 2. 安装必要的依赖项
npm install
# 3. 启动开发服务器
# DEBUG 变量启用 Express 的有用日志记录
DEBUG=my-api-app:* npm start

您的服务器现在将运行,通常在 http://localhost:3000。

  • 版本控制:脚手架搭建完成后,立即初始化一个 Git 仓库:git init && git add . && git commit -m "Initial commit from express-generator"。
  • 开发服务器:在开发过程中,强烈建议使用 nodemon 这样的工具,它可以在文件更改时自动重启服务器。安装它(npm install --save-dev nodemon)并在 package.json 中添加一个脚本:"dev": "nodemon ./bin/www"。然后您可以通过 npm run dev 运行您的应用程序。
  • 基于 Express 的框架:对于更大、更复杂的应用程序,可以考虑基于 Express 构建的框架,例如 NestJS。NestJS 使用 TypeScript 提供高度结构化、有主见的架构,这可以显著提高可维护性和可扩展性。