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請求參數。

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