如何在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
相关产品推荐
相关产品推荐

