qq309187341
V2EX  ›  Vite

请教一个 vite 代理的问题

  •  
  •   qq309187341 · Apr 12, 2023 · 4054 views
    This topic created in 1130 days ago, the information mentioned may be changed or developed.
    我想通过 vite 代理的能力拦截某些接口请求,然后做一些其他的操作,比如本地文件写入等等。
    我通过 configure 方法拦截了对应的接口,但是因为这个接口是 post 请求,我要如何才能拿到其中的 body 内容,req.body 返回的是 undefined 。是不是需要使用 body-parser 插件解析一下?能不能写下如何操作?

    server: {
    port: 9900,
    proxy: {
    '/root': {
    target: 'http://192.168.3.216',
    changeOrigin: true,
    configure: (proxy, options) => {
    proxy.on('proxyReq', (proxyReq, req, res) => {
    console.log(req.body)
    })
    }
    },
    },
    },
    10 replies    2023-04-12 14:53:33 +08:00
    zack5337
        1
    zack5337  
       Apr 12, 2023 via iPhone
    post 请求 content-type 配置了吗
    xujianxing
        2
    xujianxing  
       Apr 12, 2023
    可以自定义服务器,使用中间件
    qq309187341
        3
    qq309187341  
    OP
       Apr 12, 2023
    @zack5337 配置了的。。。迷茫了,不知道怎么获取了
    qq309187341
        4
    qq309187341  
    OP
       Apr 12, 2023
    @xujianxing 原来是使用 vite 的插件能力。
    server.middlewares.use(bodyParser.urlencoded({ extended: true }))
    server.middlewares.use(bodyParser.json())
    就能转化出来。但是发现因为插件功能会监听会与 vite 自身的反向代理有冲突,导致数据被转化后传递到后台他们无法解析了。
    zack5337
        5
    zack5337  
       Apr 12, 2023 via iPhone
    @qq309187341 导入 body-parser ,直接使用解析 json()不行吗
    qq309187341
        6
    qq309187341  
    OP
       Apr 12, 2023
    @zack5337 不知道怎么用 node 环境下使用 app.use(bodyParser.json())
    但是这个返回的 proxy 是个啥玩样,好像 proxy.use 也没有呀!!!
    zack5337
        7
    zack5337  
       Apr 12, 2023
    @qq309187341 import bodyParser from 'body-parser';
    configure: (proxy) => {
    proxy.on('proxyReq', function (proxyReq, req, res, options) {
    bodyParser.json()(req, res, function () {
    if (req.body) {
    console.log(req.body);
    }
    });
    });
    },
    qq309187341
        8
    qq309187341  
    OP
       Apr 12, 2023
    @zack5337 受教受教,还能这样写。可以解析出来了。但是再问一下大佬,我的 body 数据是多层对象嵌套,看了返回值,深层的对象变成 [object] 了。。。怎么解!!!
    qq309187341
        9
    qq309187341  
    OP
       Apr 12, 2023
    @zack5337 [
    {
    parentKey: null,
    path: '/admin',
    key: 'mnojtb5cwxn',
    component: 'BasicLayout',
    type: 1,
    title: '控制台 2',
    meta: {
    icon: 'i-ep-add-location',
    keepAlive: false,
    hidden: false,
    title: '控制台 2',
    key: 'mnojtb5cwxn'
    },
    authBtns: [],
    children: [ [Object] ]
    },
    {
    parentKey: null,
    path: '/user',
    key: '24yh3krjj5d',
    component: 'BasicLayout',
    type: 1,
    title: '会员管理',
    meta: {
    icon: 'i-ep-aim',
    keepAlive: false,
    hidden: false,
    title: '会员管理',
    key: '24yh3krjj5d'
    },
    children: [ [Object], [Object] ]
    },

    里面的 children 变成[ [Object], [Object] ]了
    qq309187341
        10
    qq309187341  
    OP
       Apr 12, 2023
    @zack5337 没事了,只是展示的问题,看了一下没有问题
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3003 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 07:33 · PVG 15:33 · LAX 00:33 · JFK 03:33
    ♥ Do have faith in what you're doing.