我有一个带有一系列复选框的HTML表单(使用[]命名).我需要能够用express来处理它.我正在使用身体解析器.
问题是未经检查的复选框不提交值,同时,正文解析器似乎通过简单地按索引的顺序将值打包到数组中来删除数组中的"漏洞",但忽略了索引本身.(更新:实际上看起来qs是罪魁祸首).
考虑这个完整的示例,它显示一个表单并使用提交数据的JSON转储进行响应:
安装:
npm install express body-parser
Run Code Online (Sandbox Code Playgroud)
index.js:
var express = require("express");
var site = express();
site.use(require("body-parser").urlencoded({extended:true}));
site.get("/", function (req, res) {
res.sendFile(__dirname + "/test.html");
});
site.post("/form", function (req, res) {
res.json(req.body);
});
site.listen(8081);
Run Code Online (Sandbox Code Playgroud)
的test.html:
<html>
<body>
<form method="post" action="/form">
<input type="checkbox" name="option[0]" value="1">
<input type="checkbox" name="option[1]" value="1">
<input type="checkbox" name="option[2]" value="1"><br>
<input type="text" name="text[0]"><br>
<input type="text" name="text[1]"><br>
<input type="text" name="text[2]"><br>
<button type="submit">Submit</button>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在该示例中,如果我只检查option[1] …