(精华)2020年7月6日 Node.js express(手写版)
        【摘要】 
                    
                        
                    
                    //myexpress.js
const http = require('http');
const url = require('url');
let routers = [];
class Appli...
    
    
    
    //myexpress.js
const http = require('http');
const url = require('url');
let routers = [];
class Application {
    get(path, hander) {
        routers.push({
            path,
            method: 'get',
            hander
        });
    }
    listen2() {
        const server = http.createServer(function (req, res) {
            const {
                pathname
            } = url.parse(req.url, true);
            var tet = routers.find(v => {
                return v.path == pathname && req.method.toLowerCase() == v.method
            })
            tet && tet.hander(req, res);
        })
        //在Application原型上添加listen方法匹配路径, 执行对应的hander
        server.listen(...arguments)
        //  server.listen(aa,fn)
    }
}
module.exports = function () {
    return new Application();
}
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
const express = require('./myexpress.js');
const app = express();
app.get('/',(req,res) => {
    res.end('Hello world')
})
app.get('/users',(req,res) => {
    res.end(JSON.stringify({name:'abcooooo'}))
})
app.get('/list',(req,res) => {
    res.end(JSON.stringify({name:'list'}))
})
app.listen2(3200 , () => {
    console.log('Example listen at 3200')
})
  
 - 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
文章来源: codeboy.blog.csdn.net,作者:愚公搬代码,版权归原作者所有,如需转载,请联系作者。
原文链接:codeboy.blog.csdn.net/article/details/107168914
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)