未使用enctype =' multipart / form-data'获取所有表单属性

时间:2017-08-19 23:10:11

标签: html node.js forms express

我的NodeJS服务器使用秘密表单将文件上传到亚马逊。话虽如此,我想通过为该表单提供密码字段来增加额外的安全性 - 问题是,当我这样做时,当我尝试通过req.body.pass访问它时,我的服务器没有获得该属性

我的代码:

//Express NodeJS Server:

app.use(bodyParser.json()); 

app.use(bodyParser.urlencoded({
    extended: true 
}));

app.post('/upload', function(req, res, next) {
    console.log(req.body.pass); //undefined, but why? when I remove enctype='multipart/form-data' it works
})

//HTML

<form action="/upload" method="post" enctype='multipart/form-data'>
        <input type="file" name="name" value="">
        <input type="file" name="email" value="">
        <input type="file" name="age" value="">
        <br>Password: <input type = "password" name = "pass"><br>

        <br><input type="submit" value="Submit">
</form>

当我删除以下内容时:

enctype='multipart/form-data'

田野通行证..我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

正如bodyParser中间件名称所示,它们只处理'application / json'和'application / x-www-form-urlencoded'表单。您需要一个单独的模块来处理multipart/form-data表单,例如multer