您好,我想在我的nodejs应用中使用multer将图像上传到cloudinary,它在localhost上可以正常运行,但是当我将其上传到zeit时它不起作用,它说“ ENOENT:没有这样的文件或目录,请打开(文件夹) ” 我尝试使用@ now / static使该文件夹可用,但它也无法正常工作。如果您能帮助我,我会很高兴。
const express = require("express")
const multer = require("multer")
const cloudinary = require("cloudinary").v2
const cors = require("cors")
const config = require("../../config")
const response = require("../../network/response")
const Controller = require("./index")
const auth = require("./secure")
const router = express.Router()
cloudinary.config({
cloud_name: config.cloudinary.name,api_key: config.cloudinary.api_key,api_secret: config.cloudinary.api_secret,})
const storage = multer.diskStorage({
destination: function (req,file,cb) {
cb(null,"./public/uploads")
},filename: function (req,file.originalname)
},})
const upload = multer({
storage: storage,limits: { fileSize: 1024 * 1024 * 5 },})
// Set routes
router.use(cors())
router.get("/",auth("list"),list)
router.post("/",auth("add"),upload.single("file"),upsert)
// Router Functions
function list(req,res,next) {
Controller.list()
.then((post) => {
response.success(req,post,200)
})
.catch(next)
}
function upsert(req,next) {
const path = req.file.path
const uniqueFilename = new Date().toISOString()
cloudinary.uploader.upload(
path,{ public_id: `public/${uniqueFilename}` },// directory and tags are optional
function (err,image) {
if (err) return res.send(err)
console.log("file uploaded to Cloudinary")
// remove file from server
const fs = require("fs")
fs.unlinkSync(path)
}
)
Controller.upsert(req.body,uniqueFilename)
.then((post) => {
response.success(req,201)
})
.catch(next)
}
module.exports = router