node.js - TypeError:next 不是 multer 包中的函数
问题描述
当我上传文件时,我碰巧遇到了这种错误。我一直在使用 multer 包很长时间没有任何问题。
我碰巧在节点 v6.11.4 上使用谷歌云存储
C
onst {Storage} = require('@google-cloud/storage')
const multer = require('multer');
//configuring the google cloud storage.
const storage = new Storage({
projectId: functions.config().project.id
//keyFilename: "<path to service accounts prviate key JSON>"
})
//const bucket = storage.bucket("<Firebase Storage Bucket URL");
const bucket = storage.bucket(functions.config().bucket.url)
//multer confguration.. middleware
const upload = multer({
storage: multer.memoryStorage(),
limits:{
fileSize: 5 * 1024 * 1024 // no larger than 5mb, you can change as needed.
}
})
exports.updateUserRole = functions.https.onRequest(upload.single('license'),(req,res) => {
I expect this file to be uploaded
Actual results
TypeError: next is not a function at multerMiddleware (/user_code/node_modules/multer/lib/make-middleware.js:18:41) at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:57:9) at /var/tmp/worker/worker.js:726:7 at /var/tmp/worker/worker.js:709:11
解决方案
Formidable 不适用于 Cloud Functions,原因与 multer 不起作用的原因相同。 请改用busboy。 如何在 Cloud Functions for Firebase (multer, busboy) 上使用 express 执行 HTTP 文件上传 所以这个问题在某种程度上与链接中的上述问题有关,除非有人现在反对......
推荐阅读
- python - 使用 Django 动态填充表格中的下拉列表
- amazon-web-services - 如何使用 AWS CodeDeploy 对“端口 8080 已在使用中”进行故障排除?
- javascript - 新点击后Jquery点击事件不更新
- amazon-web-services - 来自 docker 映像的带有 lambda 的 Aws localstack,调用时出错错误:没有这样的容器:
- python - 根据文件名列表(在多个 FTP 目录中)检索 FTP 文件的最简单方法是什么 - Python
- python - Scrapy Splash 从第一页返回数据点两次
- javascript - @babel/preset-env 尝试转换 Recoiljs 的汇总问题
- angular - Angular routerLink HostBinding
- youtube-api - 为什么频道统计信息的 youtube api 停止正确响应?
- unity3d - Unity中如何实现背包UI