Firebase 托管和云功能不适用于 formidable:incomingForm 不是构造函数
Firebase hosting and cloud functions don't work with formidable: incomingForm is not a constructor
我使用 express
来处理 post 请求和强大的解析上传文件:
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
在 post 填写我的表格后。
formidable
适用于我机器上的普通节点服务器和 Express 服务器。我已经尝试过 firebase node 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
上寻找解决方案
Formidable doesn't work with Cloud Functions, for the same reason that multer doesn't work。请改用 busboy。
Formidable-serverless 是一个不错的选择。它适用于 Firebase Cloud Functions。
我使用 express
来处理 post 请求和强大的解析上传文件:
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
在 post 填写我的表格后。
formidable
适用于我机器上的普通节点服务器和 Express 服务器。我已经尝试过 firebase node 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
Formidable doesn't work with Cloud Functions, for the same reason that multer doesn't work。请改用 busboy。
Formidable-serverless 是一个不错的选择。它适用于 Firebase Cloud Functions。