跳到主要内容

Express基础入门

1. Express框架概述

Express是一个基于Node.js平台的Web应用开发框架,它提供了一系列强大特性帮助你创建各种Web和移动设备应用。Express的特点包括:

  • 简洁而灵活的路由系统
  • 高效的中间件机制
  • 丰富的HTTP工具
  • 模板引擎支持
  • 易于集成数据库

Express被称为"Node.js的瑞士军刀",是Node.js生态系统中最流行的Web框架之一。

2. 安装与配置

2.1 前提条件

在开始使用Express之前,确保你已经安装了:

  • Node.js(推荐LTS版本)
  • npm(Node.js包管理器)

2.2 安装Express

首先创建一个新的项目目录,然后初始化npm:

mkdir my-express-app
cd my-express-app
npm init -y

然后安装Express:

npm install express --save

2.3 创建第一个Express应用

创建一个名为app.js的文件,添加以下代码:

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
res.send('Hello World!')
})

app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})

运行应用:

node app.js

打开浏览器访问 http://localhost:3000,你将看到 "Hello World!" 消息。

3. 基本概念

3.1 应用程序对象

app 对象是Express的实例,它是整个应用的核心:

const app = express()

应用程序对象负责:

  • 定义路由
  • 配置中间件
  • 设置视图引擎
  • 启动HTTP服务器

3.2 路由

路由决定了应用程序如何响应客户端对特定端点的请求,包含一个URL路径和一个HTTP方法。

基本路由格式:

app.METHOD(PATH, HANDLER)

其中:

  • app 是Express实例
  • METHOD 是HTTP请求方法(get, post, put, delete等)
  • PATH 是服务器上的路径
  • HANDLER 是当路由匹配时执行的函数

3.3 请求和响应对象

路由处理函数接收两个主要对象:

  • req (请求对象):包含客户端请求的信息
  • res (响应对象):用于向客户端发送响应

常用的请求对象属性:

  • req.params:URL参数
  • req.query:查询字符串参数
  • req.body:请求体数据
  • req.headers:请求头

常用的响应对象方法:

  • res.send():发送响应
  • res.json():发送JSON响应
  • res.status():设置HTTP状态码
  • res.render():渲染视图模板

4. 静态文件服务

Express提供了内置的中间件来提供静态文件,如图片、CSS文件和JavaScript文件:

app.use(express.static('public'))

这会使public目录中的文件可以通过URL直接访问。例如,如果public目录中有一个images子目录,其中包含一个logo.png文件,那么可以通过http://localhost:3000/images/logo.png访问该文件。

5. 基本中间件使用

中间件函数可以访问请求对象、响应对象和应用程序的请求-响应周期中的下一个中间件函数。

5.1 应用级中间件

绑定到应用程序实例的中间件:

app.use((req, res, next) => {
console.log('Time:', Date.now())
next()
})

5.2 路由级中间件

绑定到路由实例的中间件:

const router = express.Router()

router.use((req, res, next) => {
console.log('Time:', Date.now())
next()
})

6. 练习项目

创建一个简单的Express应用,包含以下功能:

  1. 提供静态文件服务
  2. 实现几个基本路由
  3. 添加简单的中间件

7. 下一步学习

现在你已经了解了Express的基础知识,接下来可以深入学习:

  • 路由系统详解
  • 中间件高级应用
  • 错误处理机制
  • 模板引擎使用
  • 数据库集成

继续阅读后续章节,掌握更多Express高级功能!