如何form[method="post"]从Node.js中的HTTP POST方法提取表单数据()和文件上传?
form[method="post"]
POST
我已经阅读了文档,谷歌搜索并没有发现任何东西。
function (request, response) { //request.post???? }
有图书馆还是黑客?
如果使用Express(用于Node.js的高性能,高级Web开发),则可以执行以下操作:
HTML:
<form method="post" action="/"> <input type="text" name="user[name]"> <input type="text" name="user[email]"> <input type="submit" value="Submit"> </form>
API客户端:
fetch('/', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ user: { name: "John", email: "john@example.com" } }) });
Node.js :( 自Express v4.16.0起)
// Parse URL-encoded bodies (as sent by HTML forms) app.use(express.urlencoded()); // Parse JSON bodies (as sent by API clients) app.use(express.json()); // Access the parse results as request.body app.post('/', function(request, response){ console.log(request.body.user.name); console.log(request.body.user.email); });
Node.js :( 适用于Express <4.16.0)
const bodyParser = require("body-parser"); /** bodyParser.urlencoded(options) * Parses the text as URL encoded data (which is how browsers tend to send form data from regular forms set to POST) * and exposes the resulting object (containing the keys and values) on req.body */ app.use(bodyParser.urlencoded({ extended: true })); /**bodyParser.json(options) * Parses the text as JSON and exposes the resulting object on req.body. */ app.use(bodyParser.json()); app.post("/", function (req, res) { console.log(req.body.user.name) });