У меня проблемы с загрузкой изображения с помощью Multer в мой NodeJS бэкэнд. Я использую Ax ios для отправки объекта FormData, содержащего изображение и некоторые данные, на мой прокси-сервер NGINX, который в конечном итоге сохранит его в моем Digital Ocean Space. Все отлично работает в моей среде разработки, но когда я пытаюсь загрузить файл в производство, я получаю эту ошибку:
SyntaxError: Unexpected token - in JSON at position 0
at JSON.parse (<anonymous>)
at createStrictSyntaxError ...
Поскольку я получаю только эту ошибку в производственной среде, я чувствую, что это что-то сделать с моей nginx настройкой прокси (это единственное, что отличается от производства к разработке).
Axois:
export async function createPost(formData) {
axios.post(`${config.SERVER}/create_post`, formData, {
headers: { Authorization: `Bearer ${localStorage.getItem("token")}` }
});
}
Express & Multer:
const endpoint = new aws.Endpoint("sfo2.digitaloceanspaces.com/");
const s3 = new aws.S3({
endpoint,
accessKeyId: config.DO_SPACE_ACCESS_KEY,
secretAccessKey: config.DO_SPACE_SECRET_KEY
});
var productionUpload = multer({
storage: multerS3({
s3,
bucket: "bucket-name",
acl: "public-read",
contentType: multerS3.AUTO_CONTENT_TYPE,
filename: (req, file, cb) => {
cb(
null,
file.fieldname + "-" + Date.now() + `${path.extname(file.originalname)}`
);
}
})
});
app.post(
"/create_post",
productionUpload.single("file"),
verifyToken,
create_post
);
Nginx Конфиг:
location API/ {
proxy_pass http://localhost:3000/;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Content-Type 'application/json';
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
Я исчерпал все опции на этом сайте и на других. Заранее спасибо!