Файл multer.memoryStorage() не определен или ошибка: неожиданный конец формы [закрыто]Javascript

Форум по Javascript
Ответить
Anonymous
 Файл multer.memoryStorage() не определен или ошибка: неожиданный конец формы [закрыто]

Сообщение Anonymous »

Я пытаюсь загрузить файл в API OpenAI с помощью облачных функций Firebase, Express и Multer. У меня есть пользовательский интерфейс React, который я использую для загрузки файла на свой сервер, чтобы затем отправить его в API OpenAI, но у меня возникла проблема с Multer. Всякий раз, когда я пытаюсь загрузить файл через свой пользовательский интерфейс React, серверная часть/мультер либо не получает его, либо выдает ошибку: «Ошибка: неожиданный конец формы». Мой внутренний код следующий:

Код: Выделить всё

import {onRequest} from "firebase-functions/v2/https";
import express from "express";
import cors from "cors";
import multer from "multer";

const app = express();
app.use(cors({origin: true}));
app.use(express.json());
app.use(express.urlencoded({extended: true}));

// Multer memory storage
const storage = multer.memoryStorage();
const upload = multer({storage: storage});

// Healthcheck endpoint
app.get("/healthcheck", (req, res) => {
res.status(200).json({
status: "ok",
timestamp: new Date().toISOString(),
message: "Backend is running",
});
});

// Parse file endpoint
app.post("/parse-file", upload.single("uploadFile"), async (req, res) => {
console.log("Content-Type:", req.headers);
console.log("File received:", req.file);
console.log("Body:", req.body);
res.json({ok: true, body: req.body});
return;
});

export const api = onRequest(app);
Если я использую самую последнюю стабильную версию Multer, я всегда вижу сообщение «Ошибка: неожиданный конец формы». Если я использую Multer v1.4.2 или v1.4.3, API возвращает {ok: true, body: {}}, говорящий, что файл не определен. Кроме того, любые другие поля, которые я передаю в конечную точку, также не отображаются (например, имя пользователя или тестовое поле, тело по-прежнему всегда пусто).
Я пробовал перемещаться по строке app.use(express.json()). Я также пробовал использовать Busboy, который возвращает «Ошибка: неожиданный конец формы». Когда я обращаюсь за помощью к инструментам искусственного интеллекта, они предлагают убедиться, что имя поля в строке upload.single("uploadFile") соответствует тому, что я проверил. Я также пробовал разные версии функций Firebase, которые не изменили результат. Я попытался попасть в конечную точку вручную через Postman, а не через свой пользовательский интерфейс, но получил те же результаты. Исходя из этого, я предполагаю, что это не проблема CORS, но на данный момент все возможно, ха-ха. Если у кого-нибудь есть какие-либо предложения, это будет очень полезно!

Подробнее здесь: https://stackoverflow.com/questions/797 ... nd-of-form
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»