请教一个 vite 代理的问题

2023-04-12 10:06:53 +08:00
 qq309187341
我想通过 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)
})
}
},
},
},
1492 次点击
所在节点    Vite
10 条回复
zack5337
2023-04-12 10:50:04 +08:00
post 请求 content-type 配置了吗
xujianxing
2023-04-12 10:54:20 +08:00
可以自定义服务器,使用中间件
qq309187341
2023-04-12 11:03:11 +08:00
@zack5337 配置了的。。。迷茫了,不知道怎么获取了
qq309187341
2023-04-12 11:05:12 +08:00
@xujianxing 原来是使用 vite 的插件能力。
server.middlewares.use(bodyParser.urlencoded({ extended: true }))
server.middlewares.use(bodyParser.json())
就能转化出来。但是发现因为插件功能会监听会与 vite 自身的反向代理有冲突,导致数据被转化后传递到后台他们无法解析了。
zack5337
2023-04-12 11:13:49 +08:00
@qq309187341 导入 body-parser ,直接使用解析 json()不行吗
qq309187341
2023-04-12 11:26:22 +08:00
@zack5337 不知道怎么用 node 环境下使用 app.use(bodyParser.json())
但是这个返回的 proxy 是个啥玩样,好像 proxy.use 也没有呀!!!
zack5337
2023-04-12 13:57:14 +08:00
@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
2023-04-12 14:32:40 +08:00
@zack5337 受教受教,还能这样写。可以解析出来了。但是再问一下大佬,我的 body 数据是多层对象嵌套,看了返回值,深层的对象变成 [object] 了。。。怎么解!!!
qq309187341
2023-04-12 14:33:32 +08:00
@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
2023-04-12 14:53:33 +08:00
@zack5337 没事了,只是展示的问题,看了一下没有问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/931821

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX