express学习

4/2/2024 Node

# 路由

使用与 HTTP 方法相对应的express app对象方法来定义路由。

// 根目录的GET方法路由示例
const express = require('express')
const app = express()
app.get('/', (req, res) => {
    res.send('hello world')
})
1
2
3
4
5
6

app.all()用于在所有 HTTP 请求方法的路径上加载中间件函数,如下所示:都会对路由 “/secret” 的请求执行以下处理程序。

app.all('/secret', (req, res, next) => {
    console.log('Accessing the secret section ...')
    next()
})
1
2
3
4

路由参数,用于捕获在 URL 位置中指定的值,捕获的值填充到 req.params 对象中。

app.get('/users/:userId/books/:bookId', (req, res) => {
    // 如果请求的URL是http://localhost:3000/users/34/books/8989
    // 则req.params: { "userId": "34", "bookId": "8989" }
    res.send(req.params)
})
1
2
3
4
5

# 中间件

  1. 应用级中间件
  • 使用 app.use()和 app.METHOD()方法来加载中间件,其中 METHOD 是 HTTP 请求方法。
  • 要跳过剩余的中间件函数,调用 next('route')将控制传递给下一个路由。
  • 中间件也可以在数组中声明实现可重用性。
function logOriginalUrl(req, res, next) {
    console.log(req.originalUrl)
    next()
}
function logMethod(req, res, next) {
    console.log(req.method)
    next()
}
const logStuff = [logOriginalUrl, logMethod]
app.get('/user/:id', logStuff, (req, res) => {
    res.send('userInfo')
}
1
2
3
4
5
6
7
8
9
10
11
12
上次更新: 5/31/2024, 6:07:16 PM