Node.js基础—— GET和POST请求

参考来源:https://www.runoob.com/nodejs/node-js-get-post.html

在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交。

表单提交到服务器一般都使用 GET/POST 请求。

接下来,我们就进行get方式的请求,这个我们不需要过多的讲解,相信大家都会用get,我们直接上代码:

在任意盘里创建一个文件夹,我的是在E盘下:

获取GET请求参数:

在该文件夹下,创建一个index.js,代码如下:

var http = require('http');
var url=require('url'); //引入url 模块,帮助解析
var querystring=require('querystring');// 引入 querystring 库,也是帮助解析用的
function service(req,response){
    //获取返回的url对象的query属性值
    var arg = url.parse(req.url).query;
     
    //将arg参数字符串反序列化为一个对象
    var params = querystring.parse(arg);
     
    //请求的方式
    console.log("method - " + req.method);
     
    //请求的url
    console.log("url - " + req.url);
 
    //获取参数id
    console.log("id- " + params.id);
 
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello Node.js');
}
var server = http.createServer(service);
server.listen(8080);

打开控制台,进入到指定的文件夹下,输入命令:node index.js

浏览器无参数访问: localhost:8080    (8080是刚才监听的端口)

在上述控制台里,会出现 /favicon.ico 信息,这个 favion 是 favorite icon 的缩写,即网站图标
用node.js 就会有这么一个默认的访问,忽略掉好了。。。

浏览器有参数访问:http://localhost:8080/?id=123

获取POST请求参数:

POST 请求的内容全部的都在请求体中,http.ServerRequest 并没有一个属性内容为请求体,原因是等待请求体传输可能是一件耗时的工作。

比如上传文件,而很多时候我们可能并不需要理会请求体的内容,恶意的POST请求会大大消耗服务器的资源,所以 node.js 默认是不会解析请求体的,当你需要的时候,需要手动来做。

创建一个post.js文件:

var http = require('http');
var querystring = require('querystring');
 
var postHTML = 
  '<html><head><meta charset="utf-8"><title>菜鸟教程 Node.js 实例</title></head>' +
  '<body>' +
  '<form method="post">' +
  '网站名: <input name="name"><br>' +
  '网站 URL: <input name="url"><br>' +
  '<input type="submit">' +
  '</form>' +
  '</body></html>';
 
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.url) { // 输出提交的数据
        res.write("网站名:" + body.name);
        res.write("<br>");
        res.write("网站 URL:" + body.url);
    } else {  // 输出表单
        res.write(postHTML);
    }
    res.end();
  });
}).listen(8080);

打开控制台:输入命令:node post.js

打开浏览器,访问:localhost:8080

结果:

 

以上就是通过node.js获取Get和Post请求参数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章