express 文件上传包路径问题

express fileupload package problem with the path

我想将文件上传到 'public' 文件夹时遇到问题。当我不使用 './' 时会出现此问题。如果我使用 '../''/' 文件,请不要上传到 public 文件夹。

**controllers.js**
files.forEach(file => {
        file.mv('../public/' + file.name, err => {
            if (err) {
                log({ err });
                return res.redirect('/')
            }

            log('file uploaded');

        })
    })

错误:Error: ENOENT: no such file or directory, open 'D:\Users\Antonio\Desktop\public\image4.jpg'

还有这个错误:Express-file-upload: Request is not eligible for file upload!

当我在里面时会发生这种情况 controllers/controllers.js。如果我在 app.js 中编写这段代码,我不会遇到任何问题。

file.mv() 方法相对于 cwd 当前工作目录路径起作用。

要让它工作,你需要这样写:

const path = require('path')

const fileName = path.join(__dirname, '../public/', file.name)

file.mv(fileName)

这样做,路径将是相对于 controller.js 文件的(而不是相对于 cwd