Node 路由优化封装

  1. 模拟express框架实现get post 路由传值
  2. 主页代码更少,结构清晰,router.js为渲染界面,server.js匹配路由传值
  3. 往后再添加路由时只需在server.js里注册,在router.js中写出路由相应的渲染页面

app.js

const http=require("http");
const server=require("./model/server")
http.createServer(server).listen(8080,"localhost",()=>{
    console.log("服务器启动成功!");    
})

router.js

//使用ejs进行路由配置
const ejs = require("ejs");
let router = {
    "home": (req, res) => {
        ejs.renderFile("./views/index.ejs", (err, str) => {
            if (err) {
                throw err;
            }
            res.end(str);
        });
    },
    "login": (req, res) => {
        ejs.renderFile("./views/login.ejs", (err, str) => {
            if (err) {
                throw err;
            }
            res.end(str);
        });
    },
    "register": (req, res) => {
        ejs.renderFile("./views/register.ejs", (err, str) => {
            if (err) {
                throw err;
            }
            res.end(str);
        });
    }
}
module.exports=router;

server.js

模拟express框架:先写出路由注册的实体代码,在obj中查找当前路由,如果存在就执行响应的callback函数,否则返回404页面

const url = require("url");
let router = require("./router");
let obj = {};
let app = ((req, res) => {
    //1.解析路径
    let path = url.parse(req.url).pathname;
    if (path != "/favicon.ico") {
        res.writeHead(200, { "Content-Type": "text/html;charset=utf-8" });
        if (obj[path]) {
            obj[path](req, res);
        }
        else {
            res.end("404");
        }
    }
});
//注册路由的实体代码
app.get = ((string, callback) => {
    obj[string] = callback;
});
app.post = ((string, callback) => {
    obj[string] = callback;
});
//执行注册路由的方法
app.get("/", (req, res) => {
    res.end("home");
})
app.get("/login", (req, res) => {
    router["home"](req,res);
})
app.get("/login", (req, res) => {   
     router["login"](req,res);
})
app.get("/register", (req, res) => {   
     router["register"](req,res);
})
app.post("/registerinfo", (req, res) => {   
    res.end("注册成功!")
})
module.exports = app;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值