Ошибка такая возникает когда несколько раз вызывается res, я знаю. Но хоть убейте, глаз замылился и я не вижу где это происходит. Чуть не разнёс себе комп от бомбёжки.
Ошибка возникает на строке между двумя консоль логами ближе к концу кода
router.post('/user/:_id/uploads/croppedAvatar', async (req, res) => {
let base64String = req.body.data
const { _id } = req.params
let token = req.headers.token ? JSON.parse(req.headers.token) : null
if (!token) return res.status(403).send('В доступе отказано')
// Проверка доступа
let checkAccess
try {
checkAccess = await Helpers.checkUser(token, _id)
} catch (error) {
return res.status(500).send('Ошибка при проверке пользователя')
}
// Если сервис проверки доступа вернул ошибку
if (checkAccess.error) {
console.error(checkAccess.error)
return res.status(checkAccess.error.status).send(checkAccess.error.message)
}
const { path, extention } = req.headers
const filename = randomstring.generate()
const fullPath = `${path}/${filename}.${extention}`
const baseUrl = process.env.NODE_ENV === 'production' ? 'boevoy_url' : 'http://localhost:8081'
const url = `${baseUrl}/static/${_id}/avatars/${filename}.${extention}`
// Удаляем заголовок
let base64Image = base64String.split(';base64,').pop()
try {
fs.writeFile(fullPath, base64Image, { encoding: 'base64' }, err => {
if (err) return res.status(500).send(`Ошибка сохранения файла: ${err}`)
else return
});
} catch (error) {
const err = {
desc: 'Ошибка сохранения обрезанного аватара',
error: error.message
}
console.error(err)
return res.status(500).send(err)
}
try {
await User.findByIdAndUpdate(_id, {
avatar: url
})
console.log('Тут работает')
res.send('Обрезанный аватар успешно загружен')
console.log('А тут уже нет')
} catch (error) {
const err = {
desc: 'Ошибка добавления обрезанного аватара в профиль пользователя',
error: error.message
}
console.error('сука', err)
return res.status(500).send(err)
}
})