如何发布表单并从 Node.js 服务器"multipart/form-data"获取文本字段值?



正在尝试使用 multer 上传文件。我可以上传文件,但不知何故无法获取表单内包含内容/类型的文本框值"多部分/表单数据"。

<div class="container">
    <h1>File Upload</h1>
    <form action="/upload" method="POST" enctype="multipart/form-data" >
      <div class="file-field input-field">
        <div class="btn grey">
          <span>File</span>
          <input name="myImage" type="file" multiple="multiple"> 
        </div>
        <div class="file-path-wrapper">
          <input class="file-path validate" type="text">
        </div>        
      </div>
      <div ><input type="text" name="test"/></div>
      <button type="submit" class="btn">Submit</button>
    </form>
</div>

如何获取文本框的值

<div ><input type="text" name="test"/></div>

使用body.parser?当我尝试时

const {test} = req.body;

它给出一个错误类型错误:无法读取未定义的属性"测试"。

您需要将主体解析器包含在节点服务器中:

const bodyParser = require('body-parser');
app.use(bodyParser.json());       
app.use(bodyParser.urlencoded({ extended: true})); 

然后,您应该可以访问正文中的表单数据,即 req.body.test .

app.use(express.json()),因为bodyParser在4.16.0版本中被添加回Express,因为人们希望它与Express捆绑在一起。这意味着如果您使用的是最新版本,则不必再使用bodyParser.json()。您可以改用express.json()

相关内容

最新更新