找不到我发布的表单的所有数据?

时间:2019-04-02 13:54:14

标签: html node.js forms

我正在将文件从网页上传到我的nodejs服务器,该服务器已经可以工作了。该文件与其他一些输入值一起位于表单内,我找不到如何读取的信息。

HTML

<form class="modal-content" method="POST" action="http://localhost:3000/testupload"  enctype="multipart/form-data" >
    <span class="close">&times;</span>
    <div class="modal-body">
        <input type="file" value="Upload file" name="file" id="input-upload">
        <input type="checkbox" value="Automatic Transcription" name="TESTCHECK">
        <div>
            <input type="checkbox" value="Automatic subtitling">
            <select name="testSelect">
                <option value="en-us">US English</option>
            </select>
        </div>
    </div>
    <div class="modal-footer">
        <button >Upload Media</button>
    </div>
</form>

nodejs

app.post("/testupload", (request, response, next) =>{
    let form = new formidable.IncomingForm();
    form.parse(request, function(err, fields, files){
        //console.log(fields);
        console.log(files.file.name); //Correctly gets the filename
        //further file upload code

    });
    console.log(request);
    response.end();
});

发布表单时,我可以取回文件输入,但是在请求中的任何地方都找不到其他输入和值。

1 个答案:

答案 0 :(得分:1)

根据文档,您可以使用事件:

form.on('field', function(name, value) {
});

您也可以直接通过字段进行引用(如https://www.npmjs.com/package/formidable上的示例)

form.parse(req, function(err, fields, files) {
      res.writeHead(200, {'content-type': 'text/plain'});
      res.write('received upload:\n\n');
      res.end(util.inspect({fields: fields, files: files}));
    });

据我了解,您需要正确命名表单字段(首先尝试一个简单的示例,即一个输入文本字段)。