从HTML表单向Node.js服务器发送数据

Osc*_*ros 6 html javascript post node.js

我正在学习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);
Run Code Online (Sandbox Code Playgroud)

像这样的URL:localhost:10000/?number1=50000&number2=1在我的浏览器上回显50001,所以它可以正常工作.

如果不使用Express,我需要使用HTML通过表单发送这两个参数.

怎么能实现这一目标?

jos*_*736 5

简单的答案是<form method="get">.浏览器会将表单数据转换为您已经处理的查询字符串参数.

如果需要POST,HTML表单将作为请求实体体发布.在节点中,每当一个主体块到达服务器时,a ClientRequest(request示例中的变量)就会发出一个data事件. 你不会立刻收到整个身体.你必须缓冲,直到你收到整个身体,然后解析数据.

这很难做到,因为像chunked vs normal Transfer-Encoding和浏览器提交表单数据的方式不同.我只是使用强大的(这是Express在幕后使用的),或者至少研究它如何处理表单帖子,如果你绝对必须实现自己的.(而且,真的,这只是为了教育目的 - 我不能强调你应该使用强大的任何可能最终生产的东西.)