最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

express提供http服務(wù)功能實現(xiàn)示例

 更新時間:2022年10月12日 11:25:25   作者:南方小菜  
這篇文章主要為大家介紹了express提供http服務(wù)功能實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

先看使用

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');
})

兩個功能

  • 執(zhí)行listen方法時創(chuàng)建服務(wù)
  • 訪問方法符合時,訪問對應(yīng)路徑,執(zhí)行相應(yīng)回調(diào);均不匹配時,返回固定 404 信息;

實現(xiàn)思路

注意到express是一個函數(shù),其返回值是一個具有listenget方法的對象,我們可以在express的入口進行定義,從而目光轉(zhuǎn)向?qū)?code>listen、get方法的實現(xiàn)了

  • listen方法就是對原生的http模塊的一個封裝,我們只要在執(zhí)行時利用原生 node 模塊http創(chuàng)建一個服務(wù)就可以了
  • get方法和【均不匹配兼容】其實是一個路由功能,目前可以先簡單的用一個隊列去實現(xiàn),每次執(zhí)行get等路由方法,就將路徑和對應(yīng)處理函數(shù)入隊列,然后在請求來時進行遍歷匹配即可。至于 404 兼容,我們可以在初始化時就存入一個處理函數(shù),這樣當所有都沒有匹配上時就執(zhí)行即可

具體實現(xiàn)

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服務(wù)功能實現(xiàn)示例的詳細內(nèi)容,更多關(guān)于express提供http服務(wù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 關(guān)于Node.js中Buffer的一些你可能不知道的用法

    關(guān)于Node.js中Buffer的一些你可能不知道的用法

    網(wǎng)上關(guān)于Node.js中Buffer用法的文章有很多,但是感覺還是不夠詳細,所以這篇文章主要介紹了關(guān)于Node.js中Buffer的一些你可能不知道的用法,文中介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • Node.js中的events事件模塊知識點總結(jié)

    Node.js中的events事件模塊知識點總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于Node.js中的events事件模塊知識點總結(jié)內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-12-12
  • nodejs分頁類代碼分享

    nodejs分頁類代碼分享

    最近在寫nodejs項目,沒有發(fā)現(xiàn)合適或者特別好用的分頁插件,今天晚上自己寫了一個,分享給大家,也希望大家能夠拍磚!
    2014-06-06
  • 搭建一個Koa后端項目腳手架的方法步驟

    搭建一個Koa后端項目腳手架的方法步驟

    這篇文章主要介紹了搭建一個Koa后端項目腳手架的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • node 使用multer中間件上傳報錯Unexpected end of form的問題及解決方法

    node 使用multer中間件上傳報錯Unexpected end of fo

    再前幾天還是可以正常上傳,但今天運行出現(xiàn)該報錯,下面通過場景分析給大家介紹node使用multer中間件上傳,報錯Unexpected end of form的解決方案,感興趣的朋友一起看看吧
    2025-03-03
  • 基于nodejs+express(4.x+)實現(xiàn)文件上傳功能

    基于nodejs+express(4.x+)實現(xiàn)文件上傳功能

    通過一段時間的查閱資料發(fā)現(xiàn)實現(xiàn)上傳的方式有:1.express中間件multer模塊2.connect-multiparty模塊(但現(xiàn)在 官方不推薦 )3.使用multiparty模塊實現(xiàn)4.使用formidable插件實現(xiàn),本文給大家介紹nodejs+express(4.x+)實現(xiàn)文件上傳功能,需要的朋友參考下
    2015-11-11
  • node.js中的fs.readFileSync方法使用說明

    node.js中的fs.readFileSync方法使用說明

    這篇文章主要介紹了node.js中的fs.readFileSync方法使用說明,本文介紹了fs.readFileSync的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js中require的工作原理淺析

    Node.js中require的工作原理淺析

    這篇文章主要介紹了Node.js中require的工作原理淺析,通過分析node.js的源碼得到本文,需要的朋友可以參考下
    2014-06-06
  • Node.js自定義實現(xiàn)文件路由功能

    Node.js自定義實現(xiàn)文件路由功能

    這篇文章主要介紹了Node.js自定義實現(xiàn)文件路由功能的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • node.js中joi模塊的基本使用方式

    node.js中joi模塊的基本使用方式

    這篇文章主要介紹了node.js中joi模塊的基本使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論

洛隆县| 漯河市| 景泰县| 滕州市| 抚顺县| 黔江区| 万州区| 报价| 汶川县| 大理市| 闽侯县| 临朐县| 凤阳县| 海宁市| 靖宇县| 河西区| 大理市| 平江县| 湘乡市| 秀山| 忻州市| 桃源县| 彩票| 垣曲县| 布尔津县| 凯里市| 双峰县| 吴江市| 科尔| 湖口县| 广德县| 康乐县| 于都县| 宾川县| 黑山县| 聂拉木县| 上思县| 丹凤县| 遵义市| 平塘县| 金昌市|