Nodejs中怎么获取HTML中一个form下的所有POST数据?

JavaScript017

Nodejs中怎么获取HTML中一个form下的所有POST数据?,第1张

首先获取http,并创建一个web服务,监听本地端口1337,这个可以修改,任何未被占用的端口都可以用,并坚挺data事件和end事件,整个文件保存为app.js

写一个html5网页,这个网页中的内容如下面所示,目标是获取这个表单中的name 和age数据,action是服务器地址和端口,文件名index.html

可以用浏览器来打开这个端口,如下图中所示,对浏览器无要求,基本上常用的浏览器都可以打开

在命令行中运行服务,node app.js,然后在第三步中的html页面上点击提交按钮。这时命令行中的显示如下,这样就得到了表单中post的数据,完成了html中数据从前端到后台的过程

同时 网页跳到如下所示

下面这里贴上测试代码

////////////////app.js///////

var http = require('http')

var server = http.createServer(function(req,res){

if(req.url!=="/favicon.ico"){

req.on('data',function(data){

console.log("服务器接收到的数据: "+decodeURIComponent(data))

})

req.on("end",function(){

console.log('客户端请求数据全部接收完毕')

})

}

res.end()

}).listen(1337,"localhost",function(){

console.log("listened")

})

////////////////index.html///////

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Nodejs的data事件与end事件的回调函数测试用页面</title>

</head>

<body>

<form id= "form1" action = "http://localhost:1337/" method = "post">

姓名:<input type = 'text' name = "name" value ="dragon"><br/>

年龄:<input type = "number" name = "age" value ="25">

<input type = "submit" value =" 提交"/>

</form>

</body>

</html>

实现前端和后端的参数传递,其实就是前端(页面)向服务器发起一个请求,在请求中附带了一些我们需要的参数。当服务器端接收到这个请求后,通过解析得要我们要传递的参数,这要就达到了我们的目的了。

举两个例子

java我们可以通过:

request.getParameter("xxxx")//xxxx表示参数名称来获取请求参数名称

C#我们可以通过:

GET请求参数用 Request.QueryString,获取POST请求参数用Request.Form

下面讲下POST和GET请求的主要区别:

1、GET请求的数据会附在URL之后(就是 把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连。POST把提交的数据则放置在是HTTP包的包体中。

2、GET方式提交的数据最多只能是1024字节,理论上POST没有限制。

3、POST的安全性要比GET的安全性高。安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么 别人就可以拿到你的账号和密码了。

可以这样:

……

fd.append('Filedata', fm)

fd.append('id', 5)

fd.append('sid', 8)

obj.open("post", "upload.php")

……

或者这样:

……

obj.open("post", "upload.php?id=5&sid=8")

……

前一种方式,在upload.php中要通过$_POST['id']来获取参数,而后一种方式,则通过$_GET['id']来获取参数值。