插入并放入nodeJs + express api时,带有Redux Saga的Axios不发送表单数据
Posted
技术标签:
【中文标题】插入并放入nodeJs + express api时,带有Redux Saga的Axios不发送表单数据【英文标题】:Axios with Redux Saga not sending form data when insert and put to nodeJs+express api 【发布时间】:2021-12-31 04:25:53 【问题描述】:目前我正在使用 nodeJS 反应并表达为 api。当我在没有 formData 的情况下使用 redux saga 向 api 发送数据时,它工作正常,但是当我尝试使用 formData 提交时,有一条 res 消息,我认为这是因为发送的有效负载是空的
在网络有效负载选项卡上,不发送任何表单数据
这是我使用的代码
export const addNewData = values =>
const data = new FormData()
data.append("nama", values.nama)
data.append("harga", values.harga)
// data.append("image", selectedFiles)
data.append("fasilitas", values.fasilitas)
data.append("deskripsi", values.deskripsi)
post(url.ADD_NEW_DATA, data,
headers: "content-type": "multipart/form-data" ,
)
和
const axiosApi = axios.create(
baseURL: API_URL,
)
axiosApi.defaults.headers.common["authorization"] = token
axiosApi.interceptors.response.use(
response => response,
error => Promise.reject(error)
)
export async function post(url, data, config = )
return axiosApi
.post(url, ...data , ...config )
.then(response => response.data.data)
然后我直接在提交按钮上尝试了,没有使用 redux saga,效果很好
Axios.post("http://localhost:4000/v1/data/insert", data,
headers:
"content-type": "multipart/form-data",
"authorization": token,
,
)
.then(res =>
console.log("success ", res)
)
.catch(err => console.log(err))
谁能帮帮我?我想继续使用 redux saga
更新 当我将 ...data 更改为异步函数中的数据时,formData 已正常发送成功,任何人都可以解释一下吗?提交非formData格式的数据会有影响吗?
export async function post(url, data, config = )
return axiosApi
.post(url, data, ...config )
.then(response => response.data.data)
【问题讨论】:
错误是什么? "message":"Cannot read properties of undefined (reading 'image')" 我认为这是因为发送的有效负载是空的 【参考方案1】:将 ...data 改为 data 解决
export async function post(url, data, config = )
return axiosApi
.post(url, data, ...config )
.then(response => response.data.data)
【讨论】:
以上是关于插入并放入nodeJs + express api时,带有Redux Saga的Axios不发送表单数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 mongodb 中自动插入记录(nodejs、express、mongoose)
Nodejs - 小型 Express 服务器 + trayicon + pkg
Express nodejs不使用带表单数据的mongoose插入数据