Express Generator:快速构建Express应用的实用指南

发布于:2025-07-14 ⋅ 阅读:(16) ⋅ 点赞:(0)

引言

在上文章详细讲解了 Express 入门指南(超详细教程)🔗,本文将重点介绍Express官方提供的脚手架工具Express Generator(express-generator)该工具能够快速生成完整的Express应用骨架。

一、 安装 express-generator

npm install -g express-generator

二、 创建项目

以下创建一个名为 express-generator-demo 的 Express 应用程序

express --view=pug express-generator-demo

三、安装依赖

cd express-generator-demo
npm install

四、运行项目

npm run start

在这里插入图片描述

五、项目结构

express-generator-demo/
├── app.js                 # 应用程序主文件,Express 应用配置
├── package.json           # 项目依赖和脚本配置
├── package-lock.json      # 依赖版本锁定文件
├── bin/
│   └── www               # 应用程序启动脚本
├── routes/               # 路由处理文件夹
│   ├── index.js          # 首页路由
│   └── users.js          # 用户路由
├── views/                # 视图模板文件夹 (Pug 模板)
│   ├── layout.pug        # 布局模板
│   ├── index.pug         # 首页模板
│   └── error.pug         # 错误页面模板
├── public/               # 静态资源文件夹
│   ├── stylesheets/      # CSS 样式文件
│   │   └── style.css     # 主样式文件
│   ├── images/           # 图片资源文件夹
│   └── javascripts/      # 前端 JavaScript 文件夹
└── node_modules/         # 依赖包目录

六、常用选项和配置

1. 指定模板引擎

# 使用EJS模板引擎
express --view=ejs myapp

# 使用Handlebars模板引擎
express --view=hbs myapp

# 使用Pug模板引擎(默认)
express --view=pug myapp

# 不使用模板引擎
express --no-view myapp

2. 指定CSS预处理器

# 使用Sass
express --css=sass myapp

# 使用Less
express --css=less myapp

# 使用Stylus
express --css=stylus myapp

3. 其他选项

# 强制覆盖非空目录
express --force myapp

# 添加Git忽略文件
express --git myapp

# 在当前目录生成项目
express --no-view .

七、项目优化

1. nodemon

监视文件变化(如 .js、.json 等),当代码修改后自动重启 Node 应用,无需手动停止再启动。

安装:

npm install --save-dev nodemon

配置 package.json:

"scripts": {
  "dev": "nodemon server.js",  // 直接运行
  "dev:debug": "nodemon --inspect server.js"  // 启用调试
}

运行:

npm run dev

2. 环境变量配置

安装dotenv来管理环境变量:

npm install dotenv

app.js中添加:

require('dotenv').config();

3. 错误处理优化

在生成的app.js中,可以添加更完善的错误处理:

// 404错误处理
app.use(function(req, res, next) {
  const err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// 全局错误处理
app.use(function(err, req, res, next) {
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};
  res.status(err.status || 500);
  res.render('error');
});

网站公告

今日签到

点亮在社区的每一天
去签到