You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express框架中req对象的作用及使用方法咨询

搞懂Express中的req对象

先澄清你的核心误解

兄弟,你刚好搞反啦!req(全称request)根本不是服务器向客户端请求数据的对象——它其实是客户端发送给服务器的请求的信息载体。当用户在浏览器输入网址、点击按钮发AJAX请求,或者APP调用你的API时,这些请求里的所有细节都会被Express打包到req对象里,供你的服务器代码读取和使用。

req里到底装了什么?举几个实用场景

  • 请求基础元信息:
    • req.method:获取请求的HTTP方法(比如GET/POST/PUT/DELETE)
    • req.url:获取请求的路径
    • req.headers:获取客户端的请求头(比如Cookie、User-Agent、Content-Type这些关键信息)
  • 客户端发送的业务数据:
    • GET请求的查询参数:用req.query获取,比如请求/article?page=2,可以通过req.query.page拿到2
    • POST/PUT的表单/JSON数据:先配置解析中间件(express.json()或express.urlencoded()),之后就能用req.body读取提交的数据
    • URL动态参数:如果路由定义成/user/:userId,请求/user/123时,用req.params.userId就能拿到123
  • 会话与身份信息:如果用了express-session或Passport这类中间件,req.session、req.user会存储用户的会话状态或登录信息

简单代码示例,直观理解req的用法

const express = require('express');
const app = express();

// 解析JSON格式的请求体
app.use(express.json());

// 处理GET请求,读取查询参数
app.get('/search', (req, res) => {
  const keyword = req.query.keyword;
  console.log('用户搜索关键词:', keyword);
  res.send(`搜索结果:${keyword}`);
});

// 处理POST请求,读取请求体数据
app.post('/register', (req, res) => {
  const userData = req.body;
  console.log('用户注册信息:', userData);
  res.status(201).send(`欢迎你,${userData.username}!`);
});

// 处理带动态参数的路由
app.get('/user/:userId', (req, res) => {
  const userId = req.params.userId;
  res.send(`你正在查看用户ID:${userId}的详情`);
});

app.listen(3000, () => console.log('服务器运行在3000端口'));

一句话总结

req是服务器接收客户端请求的“信息容器”,负责把客户端发来的所有数据和细节传递给你的代码;而你已经熟悉的res(response)对象是服务器发送响应给客户端的工具——二者刚好是一对:req管“收”,res管“发”。

内容的提问来源于stack exchange,提问作者Andrew Burkett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:52:28