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 模块会讲解清楚。

发布了20 篇原创文章 · 获赞 40 · 访问量 5866

猜你喜欢

转载自blog.csdn.net/HiSen_CSDN/article/details/103561795
今日推荐