node.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > node.js > express提供http服务

express提供http服务功能实现示例

作者:南方小菜

这篇文章主要为大家介绍了express提供http服务功能实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

先看使用

const express = require('./express');
const app = express();
app.get('/',function (req,res){
    res.end('/')
})
app.get('/hello',function (req,res){
    res.end('/hello');
})
app.listen(3000,function () {
    console.log('server start 3000');
})

两个功能

实现思路

注意到express是一个函数,其返回值是一个具有listenget方法的对象,我们可以在express的入口进行定义,从而目光转向对listenget方法的实现了

具体实现

const http = require('http')
const url = require('url')
function createApplication() {
    const router = [
        {
            path: '*',
            method: '*',
            handler(req,res){
                res.end(`Cannot ${req.method} ${req.url}`)
            }
        }
    ]
    return {
        get(path,handler){
            router.push({
                path,
                method: 'get',
                handler
            })
        },
        listen(port,cb){
            let server = http.createServer(function (req,res) {
                let {
                    pathname
                } = url.parse(req.url); // 获取请求的路径
                let requireMethod = req.method.toLowerCase();
                for (let index = 1; index < router.length; index++) {
                    const {method,path,handler} = router[index];
                    if(pathname === path && requireMethod === method){
                        return handler(req, res);
                    }
                }
                return router[0].handler(req,res); 
            })
            server.listen(...arguments)
        }
    }
}
module.exports = createApplication

以上就是express提供http服务功能实现示例的详细内容,更多关于express提供http服务的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文