如何在Node.js中获取inputPOST数据?

我正在学习Node.js 我想学习它,而不使用第三方模块或框架。

我想弄清楚如何从每个单独的input获取POST数据。

我正在创build一个login系统:

<form method="POST" action="/login"> <input name="email" placeholder="Email Address" /> <input name="password" placeholder="Password" /> </form> 

所以用户login和input数据POST到服务器。

Node.js服务器准备好这个POST:

  var http = require('http'); var server = http.createServer(function(req, res) { if(req.method == POST && req.url == '/login') { var body = ""; req.on('data', function (chunk) { body += chunk; }); req.on('end', function () { console.log(body); }); } }); server.listen(80); 

上面的node.js服务器代码可以console.log体。 例如,这将console.log这样的发布数据:
email=emailaddy@gmail.com密码= thisismypw

但是我怎样才能获得单独的input数据? 我想在PHP中,我可以这样定位每个input:

  $_POST['email'] and $_POST['password'] 

我可以把这些值放入一个variables,并使用它们来INSERT或CHECK数据库。

有人可以告诉我如何在Node.js中做到这一点? 请不要模块准系统!

对于application/x-www-form-urlencodedforms(默认),通常可以在数据上使用querystringparsing器:

 var http = require('http'), qs = require('querystring'); var server = http.createServer(function(req, res) { if (req.method === 'POST' && req.url === '/login') { var body = ''; req.on('data', function(chunk) { body += chunk; }); req.on('end', function() { var data = qs.parse(body); // now you can access `data.email` and `data.password` res.writeHead(200); res.end(JSON.stringify(data)); }); } else { res.writeHead(404); res.end(); } }); server.listen(80); 

对于multipart/form-data表单,使用第三方模块会更好,因为parsing这些types的请求要困难得多。