Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.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
Javascript Node.js正文分析器无法检索表单输入_Javascript_Node.js_Mongodb_Express_Body Parser - Fatal编程技术网

Javascript Node.js正文分析器无法检索表单输入

Javascript Node.js正文分析器无法检索表单输入,javascript,node.js,mongodb,express,body-parser,Javascript,Node.js,Mongodb,Express,Body Parser,我正在尝试console.log表单中的输入。但是,对于我试图在终端上打印的输入,主体解析器显示“未定义”。我不确定我做错了什么。 请告知我做错了什么。多谢各位 HTML表单 <html> <header> <link rel="stylesheet" type="text/css" href="css/form.css"> </header> <body> <form id="form" class="topBefore

我正在尝试console.log表单中的输入。但是,对于我试图在终端上打印的输入,主体解析器显示“未定义”。我不确定我做错了什么。 请告知我做错了什么。多谢各位

HTML表单

<html>
<header>
    <link rel="stylesheet" type="text/css" href="css/form.css">
</header>
<body>
<form id="form" class="topBefore" action="/form" method="post" enctype="multipart/form-data">
              <input id="name" name="name" type="text" placeholder="NAME">
              <input id="email" name="email" type="text" placeholder="E-MAIL">
              <textarea id="message" name ="message" type="text" placeholder="MESSAGE"></textarea>
              <input type="file" name="upload" multiple>
      <input id="submit" type="submit" value="GO!">  
    </form>
</body>
</html>

如果您正在节点中处理文件,bodyParser将无法工作

您的表单需要以下属性

<form action="/account/edit" method="post" enctype="multipart/form-data"></form>
//这是一个简单的reqex过滤器,用于检查ext
常量imageFilter=(请求、文件、cb)=>{
设regex=newregexp(/\(jpg | jpeg | png | gif)$/,“i”);
//返回错误
如果(!file.originalname.match(regex)){
返回cb(新错误('只允许图像文件!'),false);
}
cb(null,true);
};
//定义目的地
var storage=multer.diskStorage({
目标:功能(请求、文件、cb){
路径名=`photos/users/${req.user.dataValues.userid}`;
var p=mkdirSync(路径名)//检查是否存在照片/用户
如果(p==false){
cb(true,null)//路径不存在
}否则{
cb(null,路径名)//路径存在
}
},
文件名:函数(请求、文件、cb){
设regex=newregexp(/\(jpg | jpeg | png | gif | bmp)$/,“i”);
让filename=file.originalname;
让ext_arr=filename.match(regex);
让ext_str=ext_arr[0];//获取ext
cb(null,`${Date.now()}${ext_str}`);//文件名为Date.ext
}
})
//如果没有目录,则生成目录
常量mkdirSync=(dirPath)=>{
试一试{
fs.mkdirSync(dirPath)//不做任何事情就尝试一下
}捕捉(错误){
如果(err.code!=='EEXIST'){
fs.mkdirSync(“照片/用户”)//生成目录
试一试{
fs.mkdirSync(dirPath)//创建用户目录后立即尝试
}捕捉(错误){
如果(err.code!=='EEXIST'){
返回false;
}
}
}
}
}
//创建目录
常量checkUserdirSync=(dirPath)=>{
试一试{
fs.mkdirSync(dirPath)
}捕捉(错误){
如果(err.code!=='EEXIST')抛出错误
}

}
您的表单是多部分的,因此req.body无法检索从HTML表单发送的数据。您需要使用Multer,如下所述:

总之,处理来自multer的请求。您需要为multer对象提供配置。下面是一个代码示例,此代码接受singleFileUpload中的请求并运行upload函数。上传功能通过multer配置处理请求。如果要检索数据,则可以通过multer.diskStorage中的请求功能访问数据

如果你想澄清,请告诉我

`var storage = multer.diskStorage({
   destination: function(req, file, cb) {
   cb(null, "public/uploaded_files");
   },
   filename: function(req, file, cb) {
    cb(null, req.files[0].fieldname);
   }
 });
var upload = multer({ storage: storage }).any();
function singleFileUpload(req, res) {
upload(req, res, err => {
 if (err instanceof multer.MulterError) {
   return res.status(500).json(err);
  } else if (err) {
   return res.status(500).json(err);
  }
 return res.status(200).send(req.file);
});
}`
var multer = require('multer');
`var storage = multer.diskStorage({
   destination: function(req, file, cb) {
   cb(null, "public/uploaded_files");
   },
   filename: function(req, file, cb) {
    cb(null, req.files[0].fieldname);
   }
 });
var upload = multer({ storage: storage }).any();
function singleFileUpload(req, res) {
upload(req, res, err => {
 if (err instanceof multer.MulterError) {
   return res.status(500).json(err);
  } else if (err) {
   return res.status(500).json(err);
  }
 return res.status(200).send(req.file);
});
}`