nodejs之路由

前言

我们要为路由提供请求的 URL 和其他需要的 GET 及 POST 参数,随后路由需要根据这些数据来执行相应的代码。

因此,我们需要查看 HTTP 请求,从中提取出请求的 URL 以及 GET/POST 参数。这一功能应当属于路由还是服务器(甚至作为一个模块自身的功能)确实值得探讨,但这里暂定其为我们的HTTP服务器的功能。

我们需要的所有数据都会包含在 request 对象中,该对象作为 onRequest() 回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的 Node.JS 模块,它们分别是 url 和 querystring 模块。

在这里插入图片描述

实例

// router.js
function route(pathname) {
    console.log("pathname:" + pathname);
  }
   
  exports.route = route;

//server.js
var http = require('http')
var url = require('url')

function start(route){
    function onRequest(request,response){
        var pathname = url.parse(request.url).pathname;
        console.log("request for:" + pathname + "  received");
        
        route(pathname);

        response.writeHead(200,{"Content-Type":"text/plain"});
        response.write("hello,world");
        response.end();
    }
    http.createServer(onRequest).listen(8080);
    console.log("server has started");
}

exports.start = start;
var server = require("./server");
var router = require("./router");

server.start(router.route);

在浏览器中输入:

http://localhost:8080/user/

在这里插入图片描述

要去掉user前面的/ ,需要在解析路径上添加函数

var pathname = url.parse(request.url).pathname.replace(///, ‘’);

执行后,结果:
在这里插入图片描述

发布了70 篇原创文章 · 获赞 1 · 访问量 1240

猜你喜欢

转载自blog.csdn.net/weixin_39658118/article/details/103896014