node是运行在服务端的javaScript语言,用户向服务器发送请求就要用到get/post方法
获取get请求的内容
get请求被嵌入在路径中,我们可以通过手动解析url来获取get请求的参数
我们通过form表单来发送获取到的信息
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="http://127.0.0.1:3000/" method="get">
<input type="text" name="name">
<input type="text" name="number">
<button>Send</button>
</form>
</body>
</html>
在终端运行下边的js代码文件
parse函数的作用是解析url,返回一个json格式的数组
var http = require('http');
var url = require('url');
var util = require('util');
http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/plain'});
// 解析 url 参数
var params = url.parse(req.url, true).query;
res.write("name:" + params.name);
res.write("\n");
res.write("number:" + params.number);
res.end();
}).listen(3000);
然后在浏览器中运行并输入信息
点击send按钮
将HTML中的方法改成method="post"
获取post请求内容
POST请求的内容全部的都在请求体中,所有node.js 默认是不会解析请求体的,当需要的时候,需要手动来做
var http = require('http');
var querystring = require('querystring');
var util=require('util');
http.createServer(function (req, res) {
var body = "";
req.on('data', function (chunk) {
body += chunk;
});
req.on('end', function () {
// 解析参数
body = querystring.parse(body);
// 设置响应头部信息及编码
res.writeHead(200, {'Content-Type': 'text/html; charset=utf8'});
if(body.name && body.number) { // 输出提交的数据
res.write("yourName:" + body.name);
res.write("<br>");
res.write("number:" + body.number);
}
res.end();
});
}).listen(3000);
由于get方法发送的信息是暴露在外的,密码等具有保密性质的信息不使用get方法发送
网友评论