Javascript Node.js正文分析器无法检索表单输入
我正在尝试console.log表单中的输入。但是,对于我试图在终端上打印的输入,主体解析器显示“未定义”。我不确定我做错了什么。 请告知我做错了什么。多谢各位 HTML表单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
<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);
});
}`