Хостинг Firebase и облачные функции не работают с грозным: входящий не является конструктором - PullRequest
0 голосов
/ 08 октября 2018

Я использую express для обработки почтовых запросов и для анализа загруженных файлов:

import * as admin from "firebase-admin";
import * as functions from "firebase-functions";
import * as formidable from "formidable";
import * as util from "util";
import * as express from "express";

admin.initializeApp();
const app = express();

app.post("/image", (req, res) => {
  const form = new formidable.incomingForm();
  form.parse(req, async function(err, fields, files) {
    res.writeHead(200, { "content-type": "text/plain" });
    res.write("received upload:\n\n");
    res.end(util.inspect({ fields: fields, files: files }));
  });
});

export const api = functions.https.onRequest(app);

Я уже переписал источник и функцию в firebase.json.Я продолжал получать ошибку Internal Server Error при развертывании и при обслуживании: TypeError: formidable.incomingForm is not a constructor после публикации моей формы.

formidable хорошо работает с обычным сервером узлов и сервером Express на моей машине.Я уже пробовал бета-версию Firebase для узла 8, использовал JS вместо TS и все еще не работал.Как я могу сделать потрясающую работу с хостингом Firebase и облачной функцией?Пожалуйста, помогите.

Вот моя простая клиентская форма:

<form action="http://myfirebaseserver/image" method="post" encType="multipart/form-data">
  <input type="file" name="myImage" />
  <button type="submit">Upload</button>
</form>

В данный момент я пытаюсь busboy найти альтернативу, но все еще ищу решения для formidable

1 Ответ

0 голосов
/ 08 октября 2018

Грозный не работает с облачными функциями , по той же причине, по которой multer не работает .Вместо этого используйте busboy.

...