本地学习axios源码-如何在本地打印axios里面的信息

  1. 下载axios到本地

    git clone https://github.com/axios/axios.git

  2. 下载react项目, 用vite按照提示命令配置一下vite + react + ts项目

    npm create vite my-vue-app --template react

  1. 下载koa, 搭建一个axios请求地址的服务端

a.初始化package.json

复制代码
mkdir koa-server
cd koa-server
npm init -y

b.安装koa以及一些必要的中间件

复制代码
npm install koa koa-router koa-bodyparser @koa/cors

c.创建服务器,在项目根目录下创建一个 server.js 文件

javascript 复制代码
const Koa = require('koa');
const Router = require('koa-router');
const bodyParser = require('koa-bodyparser');
const cors = require('@koa/cors');

const app = new Koa();
const router = new Router();

// 使用中间件
app.use(cors());
app.use(bodyParser());

// 定义路由
router.get('/api/data', async (ctx) => {
  ctx.body = { message: 'Hello from Koa!' };
});

router.post('/api/data', async (ctx) => {
  const data = ctx.request.body;
  ctx.body = { received: data };
});

// 使用路由
app.use(router.routes()).use(router.allowedMethods());

// 启动服务器
const port = 3009;
app.listen(port, () => {
  console.log(`Koa server is running on http://localhost:${port}`);
});

d.启动koa服务器

javascript 复制代码
node server.js
  1. 把本地的axios引入到react项目中
javascript 复制代码
import React, { useEffect, useState } from 'react';

import axios from '../../axios/lib/axios';

console.log('axios:::', axios);

export default function Home() {
  const [message, setMessage] = useState<string>('');
  const [postData, setPostData] = useState<any>(null);

  useEffect(() => {
    // GET 请求
    axios.get('http://localhost:3009/api/data')
      .then((response: any) => {
        console.log('response:::', response);
        setMessage(response.data.message);
      })
      .catch((error: any) => {
        console.error('Error fetching data:', error);
      });
  }, []);

  const handlePost = () => {
    // POST 请求
    axios.post('http://localhost:3009/api/data', { data: 'Hello from React!' })
      .then((response: any) => {
        console.log('response:::', response);
        setPostData(response.data.received);
      })
      .catch((error: any) => {
        console.error('Error posting data:', error);
      });
  };

  return (
    <div className="App">
      <h1>{message}</h1>
      <button onClick={handlePost}>Send POST Request</button>
      {postData && <p>Received: {postData.data}</p>}
    </div>
  )
}

就可以在axios文件中console打印日志了

相关推荐
陈随易2 小时前
在 VSCode 里,把项目一键部署到服务器
前端·后端·程序员
Highcharts.js2 小时前
教程:基于 React + Highcharts 构建一个单页应用程序、按需数据拉取与图表渲染
开发语言·前端·数据结构·react.js·前端框架·highcharts·页面应用
To_OC2 小时前
我被 useState 坑了两次之后,终于把它的脾气摸透了
前端·javascript·react.js
鱼樱前端2 小时前
我用 Claude Code 后,编码效率翻 3 倍。但更值钱的是别的。
前端·后端·ai编程
_lucas3 小时前
给知识库网站接入AI问答
前端·ai编程·全栈
浮生望3 小时前
React useState 深度解析:异步更新、闭包陷阱与惰性初始化的底层逻辑
react.js
前端糕手3 小时前
前端面试题大全:JavaScript + Vue3 + React + TypeScript + 工程化 + 性能优化
前端
我不叫武5 小时前
一个用 Rust 写的离线编码查询桌面工具
前端
Web4Browser5 小时前
指纹浏览器 API 自动化怎么接:启动 Profile、获取 CDP 端点并连接自动化框架
前端·网络·typescript·自动化
Patrick_Wilson6 小时前
从 React 到 Flutter:写给前端的一张跨端知识地图
前端·flutter·react.js