Как отправить на бекенд formdata
У меня есть вот такая функция, которая записывает данные в formdata и затем вызывает функцию в store
const handleClick = (redButton) => {
const shown = redButton === "confirm" ? "red" : "confirm"
setRedButton(shown)
if (redButton === 'red') {
const formdata = new FormData()
formdata.append('email', store.user.email)
formdata.append('name', name)
formdata.append('surname', surname)
formdata.append('dob', dob)
formdata.append('city', city)
formdata.append('username', username)
formdata.append('aboutMe', aboutM)
formdata.append('img', ava)
formdata.forEach((value, key) => {
console.log(key, value);
});
store.saveData(formdata)
}
Здесь отрабатывает store:
async saveData(formdata: any) {
try {
const response = await AuthService.saveData(formdata)
console.log(response)
this.setUser(response.data.user)
} catch (e) {
console.log(e.response?.data?.message)
}
}
А здесь данные отправляются на бекенд
static async saveData(formdata: any): Promise<AxiosResponse<AuthResponse>> {
return $api.post<AuthResponse>('/user/save', { formdata })
}
Вот здесь на бекенде она принимает данные и записывает в бд
async saveData(req, res, next) {
try {
if (req.files) {
const { email, name, surname, city, dob, username, aboutMe } = req.body
const { img } = req.files
const userData = await userService.saveData(email, name, surname, city, dob, username, aboutMe, img)
res.cookie('refreshToken', userData.refreshToken, { maxAge: 30 * 24 * 60 * 60 * 1000, httpOnly: true })
return res.json({ message: 'workimg' })
} else {
const { email, name, surname, city, dob, username, aboutMe } = req.body
const userData = await userService.saveData(email, name, surname, city, dob, username, aboutMe)
res.cookie('refreshToken', userData.refreshToken, { maxAge: 30 * 24 * 60 * 60 * 1000, httpOnly: true })
return res.json(userData)
}
} catch (e) {
next(e)
}
}
Проблема в том, что данные не доходят с клиента, но если отправить formdata через postman, то все отрабатывает корректно, на моменте когда store принимает formdata, то данные находятся в formdata, но потом они теряются Заранее спасибо!!!
UPD
Ошибка, которую выдает сервер:

upd
Вот, что выдает мне postman, тоже самое должно приходить с клиента

Это ошибка, которую выдает сервер, как я понял данные не доходят до сервера вообще
Error: WHERE parameter "email" has invalid "undefined" value
at PostgresQueryGenerator.whereItemQuery (C:\Users\Миша\Desktop\основы не менять — копия\----------------\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:1743:13)
at C:\Users\Миша\Desktop\основы не менять — копия\----------------\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:1734:25
at Array.forEach (<anonymous>)
at PostgresQueryGenerator.whereItemsQuery (C:\Users\Миша\Desktop\основы не менять — копия\----------------\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:1732:35)
at PostgresQueryGenerator.getWhereConditions (C:\Users\Миша\Desktop\основы не менять — копия\----------------\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:2075:19)
at PostgresQueryGenerator.selectQuery (C:\Users\Миша\Desktop\основы не менять — копия\----------------\server\node_modules\sequelize\lib\dialects\abstract\query-generator.js:988:28)
at PostgresQueryInterface.select (C:\Users\Миша\Desktop\основы не менять — копия\----------------\server\node_modules\sequelize\lib\dialects\abstract\query-interface.js:407:59)
at user.findAll (C:\Users\Миша\Desktop\основы не менять — копия\----------------\server\node_modules\sequelize\lib\model.js:1140:47)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async user.findOne (C:\Users\Миша\Desktop\основы не менять — копия\----------------\server\node_modules\sequelize\lib\model.js:1240:12)