跟我学NodeJS(八)路由功能

本文介绍了一个使用Node.js搭建的简易HTTP服务器实现原理及代码细节。该服务器能够响应不同路由请求并展示相应的静态网页,包括首页、关于页面和登录页面等。对于不存在的路由将返回404页面。
// 加载所需模块
var http = require('http');
var url = require('url');
var fs = require('fs');

var host = '127.0.0.1';
var port = 8888;

http.createServer(function(req,res){
    var pathname = url.parse(req.url).pathname;
    console.log('Request for ' + pathname + ' received.');
        function showPaper(path,status){
            var 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('./view/home.html',200);
            break;
        //'about页'
        case '/about':
            showPaper('./view/about.html',200);
            break;
         //'login页'
        case '/login':
            showPaper('./view/login.html',200);
            break;
        //'404页'
        default:
            showPaper('./view/404.html',404);
            break;                            
    }    
}).listen(port, host);

login:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>login页面</title>
</head>
<body>
username:<input type="text" name="username" />
password:<input type="password" name="password" />
   <input type="submit" name="login" /> 
</body>
</html>

404:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>404页面</title>
</head>
<body>
   404
</body>
</html>

home:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>home页面</title>
</head>
<body>
home    
</body>
</html>

about:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>home页面</title>
</head>
<body>
home    
</body>
</html>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值