我在我的Express API中使用axios,我想在将有效负载发送到另一个API之前对其进行转换。axios正好有一个名为transformRequest
的东西,这就是我遇到问题的地方。
我的代码看起来像:
const instance = axios.create({
baseURL: 'api-url.com',
transformRequest: [
(data, headers) => {
const encryptedString = encryptPayload(JSON.stringify(data));
data = {
SecretStuff: encryptedString,
};
return data;
},
],
});
// firing off my request using the instance above:
const postData = {
id: 1,
name: 'James',
};
instance.post('/getStuff', postData)
最后,我想发布api-url.com
的JSON:{"SecretStuff": "some-base64-string"}
-不是上面显示的postData
对象。
文件上写着:“数组中的最后一个函数必须返回一个字符串或Buffer、ArrayBuffer、FormData或Stream的示例”--但当然这里我返回的是一个对象,数据。奇怪的是,在axios文档中,它显示他们从transformRequest
返回data
,但在他们的情况下,这必须是正确的数据类型。
我 * 实际上 * 如何用axios转换有效负载?
4条答案
按热度按时间wmvff8tz1#
必须将原始
axios.defaults.transformRequest
附加到此处的transformRequest
选项。aoyhnmkz2#
难道你不想
JSON.stringify()
你的转换后的数据吗?如下:ccrfmcuu3#
要修改值而不是覆盖请求中的输出,我将执行以下操作:
r7knjye24#
以下是我在TypeScript中的工作原理,灵感来自Phil的
concat
解决方案:https://stackoverflow.com/a/70949237/2339352这里的目标是使用humps库来转换为蛇形Python API/从蛇形Python API转换: