使用Node.js完成路由

Posted 明明一颗大白菜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Node.js完成路由相关的知识,希望对你有一定的参考价值。

首先先看一下文件的结构:

我想通过改变不同的路由进不同的页面,

先看这几个html页面:

404:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
404
</body>
</html>

 about:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
about
</body>
</html>

  home:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
home
</body>
</html>

  再看一下主要的root.js:

// 加载所需模块
let http = require(\'http\');
let url = require(\'url\');
let fs = require(\'fs\');

let host = \'127.0.0.1\';
let port = 8080;

http.createServer(function(req,res){
    let pathname = url.parse(req.url).pathname;
    console.log(\'Request for \' + pathname + \' received.\');
    function showPaper(path,status){
        let content = fs.readFileSync(path);
        res.writeHead(status, { \'Content-Type\': \'text/html;charset=utf-8\' });
        res.write(content);
        res.end();
    }
    switch(pathname){
        //\'首页\'
        case \'/\':
        case \'/home\':
            showPaper(\'./rooter/home.html\',200);
            break;
        //\'about页\'
        case \'/about\':
            showPaper(\'./rooter/about.html\',200);
            break;
        //\'404页\'
        default:
            showPaper(\'./rooter/404.html\',404);
            break;
    }
}).listen(port, host);

  首先我们得到了路由的URL的pathname,然后通过pathname进行判断,这里是通过使用readFileSync同步读取文件内容的方法,再写到页面中的方法进行路由的转换,结果如下:

 

以上是关于使用Node.js完成路由的主要内容,如果未能解决你的问题,请参考以下文章

node.js零基础详细教程:express 路由

重复参数通过 node.js express 或 vue 路由器获取数组

使用 express 的 Node.js 中的静态路由问题

所有路由的 HTTPS 重定向 node.js/express - 安全问题

无法在 Node JS 中使用 JWT 访问受保护的路由

Node.js 路由