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

学习Web开发存疑:API对象与Express构建服务端的区别是什么?

客户端请求工具(fetch/axios)与Express服务端框架的核心区别

首先得明确:你学的fetch、axios是客户端用来发起HTTP请求的工具,而Express是用来搭建服务端、提供API接口的框架——两者属于Web请求链路的两端,各司其职,完全不是同一类东西。

1. 定位与作用天差地别

  • fetch/axios:是运行在浏览器(或Node.js环境)里的工具,核心就是帮你给服务端发请求、拿数据。比如前端页面点个按钮要加载商品列表,你就用它们发GET请求到/api/goods,拿到数据后渲染页面就行。
  • Express:是Node.js的服务端框架,用来搭建能接收HTTP请求的服务。你可以用它定义接口路由(比如GET /api/goods)、写业务逻辑(从数据库查商品数据)、最后把结果返回给客户端。没有它的话,你得手写Node.js底层HTTP模块的代码,繁琐到爆炸。

2. 运行环境完全不同

  • fetch/axios:主要跑在浏览器客户端,也能在Node.js里用(比如写脚本爬数据),核心场景是前端和服务端的通信。
  • Express:只能跑在Node.js环境,是服务端的基础设施,专门用来搭Web服务、API服务。

3. 核心能力差异明显

  • fetch/axios:核心能力是发请求、处理响应——比如设置请求头、打包POST参数、自动解析JSON、用Promise处理异步逻辑(这也是为啥先学Promise,因为它们都是基于Promise实现的)。举个简单例子:
    // 客户端用axios发请求
    axios.get('/api/goods')
      .then(res => console.log('拿到的商品数据:', res.data))
      .catch(err => console.error('请求失败:', err))
    
  • Express:核心能力是接请求、处理逻辑、返回响应——比如定义路由、用中间件做日志/权限校验、连数据库、处理错误。举个对应接口的例子:
    // 服务端用Express写接口
    const express = require('express')
    const app = express()
    
    // 定义GET /api/goods接口
    app.get('/api/goods', (req, res) => {
      // 这里可以写从数据库查数据的逻辑
      const goodsList = [{id: 1, name: '手机'}, {id: 2, name: '电脑'}]
      res.json(goodsList) // 返回JSON数据给客户端
    })
    
    app.listen(3000, () => console.log('服务跑在3000端口啦'))
    

4. 协作关系很清晰

简单说就是:fetch/axios是“请求方”,Express是“响应方”——你用fetch/axios给Express搭的服务端接口发请求,Express处理完把数据回传给客户端,客户端再用拿到的数据做页面渲染等操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:15:41