Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如果不存在,则多创建文件夹_Node.js_Multer - Fatal编程技术网

Node.js 如果不存在,则多创建文件夹

Node.js 如果不存在,则多创建文件夹,node.js,multer,Node.js,Multer,我在multer的文档中看到,如果文件夹不存在,multer将不会创建文件夹。如果不存在文件夹,如何创建 import multer from 'multer' import crypto from 'crypto' import { extname, resolve } from 'path' import slug from 'slug' export default { storage: multer.diskStorage({ destination: resolve(__

我在multer的文档中看到,如果文件夹不存在,multer将不会创建文件夹。如果不存在文件夹,如何创建

import multer from 'multer'
import crypto from 'crypto'
import { extname, resolve } from 'path'
import slug from 'slug'

export default {
  storage: multer.diskStorage({
    destination: resolve(__dirname, '..', '..', 'uploads', 'gallery'),
    filename: (req, file, cb) => {
      const { id, description } = req.body

      crypto.randomBytes(8, (err, res) => {
        if (err) return cb(err)

        return cb(null, id + '/' + res.toString('hex') + '/' + slug(description, { lower: true }) + extname(file.originalname))
        // return cb(null, res.toString('hex') + extname(file.originalname))
      })
    }
  })
}
我必须改成:

import multer from 'multer'
import crypto from 'crypto'
import { extname } from 'path'
import slug from 'slug'
import fs from 'fs'

export default {
  storage: multer.diskStorage({
    destination: (req, file, cb) => {
      const { id } = req.body
      const path = `./uploads/gallery/${id}`
      fs.mkdirSync(path, { recursive: true })
      return cb(null, path)
    },
    filename: (req, file, cb) => {
      const { description } = req.body

      crypto.randomBytes(3, (err, res) => {
        if (err) return cb(err)

        return cb(null, slug(description, { lower: true }) + '_' + res.toString('hex') + extname(file.originalname))
      })
    }
  })
}

只有当directoy不存在时,才应该使用
mkdirSync
(可以使用返回布尔值的
existsSync
函数)。exist是不推荐使用的方法,我可以使用上面的代码来实现。谢谢