В полях формы, подобных этим
<input type="text" name="user[name]" value="MyName">
<input type="text" name="user[email]" value="myemail@somewherefarfar.com">
, некоторые из приведенных выше ответов не будут выполнены, поскольку они поддерживают только плоские данные.
Пока я использую ответ Кейси Чу, но с "qs" вместо модуля "querystring".Это также модуль "body-parser" .Поэтому, если вы хотите вложенные данные, вы должны установить qs.
npm install qs --save
Затем замените первую строку следующим образом:
//var qs = require('querystring');
var qs = require('qs');
function (request, response) {
if (request.method == 'POST') {
var body = '';
request.on('data', function (data) {
body += data;
// Too much POST data, kill the connection!
// 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB
if (body.length > 1e6)
request.connection.destroy();
});
request.on('end', function () {
var post = qs.parse(body);
console.log(post.user.name); // should work
// use post['blah'], etc.
});
}
}