You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js中使用formidable显示表单提交的值?

修改Node.js代码以展示表单提交的值

嘿,这就帮你调整代码,让它能清晰展示表单提交的所有内容——包括上传文件的详细信息和其他表单字段(我还加了个文本输入框来测试非文件字段的展示):

修改后的完整代码

var http = require('http');
var formidable = require('formidable');

http.createServer(function (req, res) {
  if (req.url == '/fileupload') {
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
      // 先处理可能的解析错误
      if (err) {
        res.writeHead(500, {'Content-Type': 'text/html'});
        res.write('表单解析出错: ' + err.message);
        return res.end();
      }

      // 设置响应内容类型为HTML,方便格式化展示
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.write('<h2>提交的表单数据:</h2>');
      
      // 展示普通表单字段(比如我们添加的username)
      res.write('<h3>普通字段:</h3>');
      res.write('<pre>' + JSON.stringify(fields, null, 2) + '</pre>');
      
      // 展示上传的文件信息
      res.write('<h3>上传文件信息:</h3>');
      res.write('<pre>' + JSON.stringify(files, null, 2) + '</pre>');
      
      res.end();
    });
  } else {
    res.writeHead(200, {'Content-Type': 'text/html'});
    // 给表单加一个文本输入框,测试普通字段的展示
    res.write('<form action="fileupload" method="post" enctype="multipart/form-data">');
    res.write('<input type="text" name="username" placeholder="输入用户名"><br><br>');
    res.write('<input type="file" name="filetoupload"><br><br>');
    res.write('<input type="submit">');
    res.end('</form>');
  }
}).listen(8080);

关键修改点说明

  • 错误处理:添加了对form.parse错误的捕获,避免服务器因为解析失败崩溃,同时给用户返回清晰的错误提示。
  • 格式化输出:用JSON.stringify(fields, null, 2)把字段和文件信息转换成带缩进的JSON字符串,再用<pre>标签包裹,让内容在浏览器里排版整齐,可读性更强。
  • 扩展表单:新增了一个名为username的文本输入框,这样你能同时看到普通表单字段和文件上传字段的提交结果,更全面地测试功能。

运行修改后的代码,访问http://localhost:8080,输入用户名并上传一个文件,提交后就能看到所有表单数据的详细内容啦!

内容的提问来源于stack exchange,提问作者awais ilyas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:46:30