运行应用程序时使用multer导致错误

我有使用multer模块https://github.com/expressjs/multer快递的节点应用程序

app.js文件我把以下内容:

 var mulStorage = require("./utils/store"), var upload = multer({ storage: mul.storage, dest: 'uploads/' }); app.use(upload.single('file')); 

store.js文件如下所示

 var multer = require('multer'); var stor = multer.diskStorage({ destination: function (req, file, cb) { cb(null, './uploads/') }, filename: function (req, file, cb) { var filename = file.originalname; var fileExtension = filename.split(".")[1]; cb(null, Date.now() + "." + fileExtension); } }) module.exports = { stor: stor } 

当我使用邮递员运行请求时,出现以下错误:

错误:ENOENT:没有这样的文件或目录,打开'c:\ Users \ c45669 \ WebstormProjects \ App \ uploads \ 1454935327214.zip'
在错误(本机)

为什么multer不创build文件夹,如果它不存在?

如果我正在创build根目录下的上传文件夹,这是工作…

顺便说一句,当我改变以下,并删除storage: mul.storage,这是工作,但我需要存储来确定文件名…

  var upload = multer({ //storage: mul.storage, dest: 'uploads/' }); 

即使如果我从物品删除属性dest并保留只有存储我有同样的错误…

为什么multer不创build文件夹,如果它不存在?

这是在文档( 链接 ):

注意:在提供目的地作为function时,您负责创build目录。 传递一个string时,multer会确保为你创build目录。

我不知道作者为什么作出这个决定,但正如你所看到的,这不是一个错误。

您可以使用fs模块来创build目录。

我有同样的问题,如果有人把我解决的错误

 var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'this is not just /uploads do it like /var/www/....') thank you!! }, filename: function (req, file, cb) { cb(null, file.fieldname + '-' + Date.now()) } }) var upload = multer({ storage: storage });