首页 > 解决方案 > 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

标签: node.jsfirebasemulter

解决方案


Formidable 不适用于 Cloud Functions原因与 multer 不起作用的原因相同。 请改用busboy。 如何在 Cloud Functions for Firebase (multer, busboy) 上使用 express 执行 HTTP 文件上传 所以这个问题在某种程度上与链接中的上述问题有关,除非有人现在反对......


推荐阅读