Node 之路由

前言

在NodeJs中,路由提供請求的 URL 和其他需要的 GET 及 POST 參數,隨後路由需要根據這些數據來執行相應的代碼,

通俗點說:通過 NodeJs路由可以拿到 地址欄 url 和 http 模塊 get post 參數 , 通過一個實例來實踐一下

創建一個 router.js 實現一個簡單的服務,內容如下:

var http = require("http"); // 引入http 模塊,後續會講到 http 模塊
var url = require("url"); // node 自由模塊

// req : request , res: response
http.createServer(function (req, res) {
  // 寫入請求頭
  res.writeHead(200, {
    "Content-Type": "text/plain"
  })
  // 頁面寫入內容
  res.write("Hello Router");
  //結束
  res.end();
  // 打印路由 req 
  console.log(url.parse(req.url).pathname)
}).listen("1234", "127.0.0.1"); 

我們需要的所有數據參數都會包含在 request 對象中,也就是我上邊簡寫的 req , 那麼我還需要一些額外的模塊, url模塊 解析地址欄url ,querystring模塊 解析get請求,這裏我們用一個 url模塊 來實踐一下NodeJs路由。

如上代碼準備完畢後,同樣運行 node router.js ,然後打開對應我們監聽的IP or 端口,也就是 127.0.0.1:1234,頁面毋庸置疑會顯示 Hello Router ,然後我們修改 url 分別爲

  • 127:0.0.1:1234/home
  • 127:0.0.1:1234/about

打印

PS C:\HiSen\myWorkDemo\node_demo> node router.js
/                   // url 解析爲 /
/favicon.ico
/home               // url 解析爲 /home
/favicon.ico
/about              // url 解析爲 /about
/favicon.ico

結果一目瞭然 , 我們可以通過 url 模塊的 url.parse(req.url).pathname 來監聽到頁面路由的變化,從而做不同的事情。

Get - Post
路由通過上邊的實例已經有了個簡單的認識,那麼 GET POST 其實也是相同的邏輯,我們的請求參數都可以通過 request 對象拿到;

  • Get 通過 request.query.xxx
  • Post 通過 request.body.xxx

Post 獲取參數,原生 NodeJs 是可以的,根據我以往的經驗,使用 express 框架好像略有一點點小插曲,並不能直接獲取到;解決方法還是挺多的,例如:
bodyParser 插件,具體怎麼樣,請大家持續關注,我後續的 HTTP 模塊會講解清楚。

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