Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.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_Mongodb_Express_Multer - Fatal编程技术网

Node.js 多文件上传错误

Node.js 多文件上传错误,node.js,mongodb,express,multer,Node.js,Mongodb,Express,Multer,我正在使用multer上传文件,当我尝试上传文件时,它会显示错误,以下是我的代码 var multer = require('multer'); var storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, '../public/uploads/') }, filename: function (req, file, cb) { cb(null, file.fi

我正在使用multer上传文件,当我尝试上传文件时,它会显示错误,以下是我的代码

var multer = require('multer');

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, '../public/uploads/')
  },
  filename: function (req, file, cb) {
    cb(null, file.fieldname + '-' + Date.now())
  }
});

var upload = multer({ storage: storage });
我在ejs视图中的表单是

<form action="class/<%= record.Class_Name %>/detial" method="post" enctype="multipart/form-data">
     <input type="text" name="UploaderName">
     input type="text" name="Title" >
     <input type="file" name="ThesisFile">
      <button type="submit">Choose File</button>
 </form>
当我提交表单时,它会显示以下错误

问题来自于您的表单
操作
。它应该是什么?我认为传递到操作的路径是错误的。它将数据传递到db而不使用multer
router.post('/Class/:name/detial' , isLoggedIn , upload.single('ThesisFile') , function(req ,  res , next) {
  var Name = req.body.UploaderName;
  var Title = req.body.Title;
  var file = req.body.ThesisFile;
  var thesis = {
    Submitted_By: Name,
    Title : Title,
    File: file
  };
  ClassModel.findOne({ Class_Name : req.params.name } , function(err , record) {
    record.ClassFiles.push(thesis);
        record.save().then(function(record) {
          req.flash('sucess_msg' , 'Thesis Added Sucessfully');
          res.render('class' , {
            "record" : record
          });
        });
  });
});
<form id="myForm" name="myForm" action="class/<%= record.Class_Name %>/detial" method="POST" enctype="multipart/form-data">
  <input type="text" name="uploaderName">
  <input type="text" name="title" >
  <input type="file" id="thesisFile" name="thesisFile">
  <button type="submit">Upload</button>
</form>
const $ = (selector) => {
  return document.querySelector(selector);
};

const submit = (event) => {
  event.preventDefault();
  const form = $("#myForm");
  const thesisFile = $("#thesisFile").files[0];

  const oData = new FormData(form);

  const request = new XMLHttpRequest();

  // replace "/Class/:name/detial" appropriately
  request.open("POST", "/Class/:name/detial", true);

  request.onload = (event) => {
    if (request.status === 200) {
      // do something
    } else {
      console.log("Error occurred");
    }
  };

  request.send(oData);
};

const form = document.forms.namedItem("myForm");
form.onsubmit = submit;