我正在学习Node.js.
我在我的服务器中有这个:
var http = require("http"); var url = require("url"); http.createServer(function(request,response){ response.writeHead(200,{"Content-Type":"text/plain"}); var params = url.parse(request.url,true).query; console.log(params); var a = params.number1; var b = params.number2; var numA = new Number(a); var numB = new Number(b); var numOutput = new Number(numA + numB).toFixed(0); response.write(numOutput); response.end(); }).listen(10000);
像这样的URL:localhost:10000 /?number1 = 50000& number2 = 1在我的浏览器上回显50001,所以它的工作原理.
如果不使用Express,我需要使用HTML通过表单发送这两个参数.
怎么能实现这一目标?
解决方法
简单的答案是
<form method="get">
.浏览器会将表单数据转换为您已经处理的查询字符串参数.
如果需要POST,HTML表单将作为请求实体体发布.在节点中,每当主体块到达服务器时,ClientRequest(示例中的请求变量)都会发出数据事件.你不会立刻收到整个身体.你必须缓冲,直到你收到整个身体,然后解析数据.
由于chunked vs normal Transfer-Encoding以及浏览器提交表单数据的不同方式,这很难做到.我只是使用formidable(这是Express在幕后使用的),或者至少研究它如何处理表单帖子,如果你绝对必须实现自己的. (而且,真的,这只是为了教育目的 – 我不能强调你应该使用强大的任何可能最终生产的东西.)