Node.js-express

安装express框架

cnpm install --save-dev express

配置框架路由
express 框架里面的路由 all用于所有的http请求
类似每个路由的安全守卫
路由守卫提前路由执行
next() 方法下一步

模拟express框架路由
实现:

let http = require("http");
let app = require('./route');
let ejs = require("ejs");
http.createServer(app).listen(8000, "127.0.0.1", () => {
    console.log("服务端运行成功!");
});
  • 写服务端的注册路由
  • 一般的路径跳转用get路由
  • get路由传值 直接路径解析
app.get("/", (req, res) => {
    ejs.renderFile("View/index.ejs", (err, str) => {
        if (err) {
            throw err;
        }
        res.send(str);
    });
});
 注册的get路由登录
app.get("/login",(req,res)=>{
    console.log(res.body);
    res.send("登录成功!");
 });
app.post("/login", (req, res) => {
    console.log(res.body);
    ejs.renderFile("View/main.ejs",(err,str)=>{
        if(err)
        {
            throw err;
        }
        res.send(str);
    });
});
表单提交的时候有post路由
post路由传值  得监听事件  
app.post("/doloigin", (req, res) => {res.send("登录成功!");});

let router = {}; 定义一个路由的空对象

建立两种路由
router._get = {};
router._post = {};
let app = (req, res) => {
        //封装一个send方法
        res.send = (string) => {
                res.writeHead(200, { "Content-Type": "text/html;Charset=utf-8" });
                res.end(string);
            }
            //路由  解析路径
        let pathname = url.parse(req.url).pathname;
        if (pathname != "/favicon.ico") {

            //检测路由是否存在
            //也可以获取req上提交状态 get  post
            // let method = req.method.toLowerCase();
            // if (router['_' + method][pathname]) {
            //     if (method == "get") {
            //     }
            //     else {
            //     }
            // }
            
       //get路由检测
            if (router._get[pathname]) {
                //获取路由的get传值
                let query = url.parse(req.url, true).query;
                //将传值关联到res上
                res.body = query;
                //get路由
                router._get[pathname](req, res);
            } else if (router._post[pathname]) {
                //post路由传递参数
                let info = "?";
                req.on("data", (params) => {
                    info += params;
                });
                req.on("end", () => {
                    let query = url.parse(info, true).query;
                    res.body = query;

                    //post路由
                    router._post[pathname](req, res);
                });
            } else {
                //路由不存在
                console.log("404");
            }
        }
    }
    //封装类似  express框架的路由   app.get()  app.post()
app.get = (string, callback) => {
    //注册路由
    router._get[string] = callback;
};
app.post = (string, callback) => {
    router._post[string] = callback;
}
module.exports = app;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值