express提供http服務功能實現(xiàn)示例
更新時間:2022年10月12日 11:25:25 作者:南方小菜
這篇文章主要為大家介紹了express提供http服務功能實現(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)建服務 - 訪問方法符合時,訪問對應路徑,執(zhí)行相應回調(diào);均不匹配時,返回固定 404 信息;
實現(xiàn)思路
注意到express是一個函數(shù),其返回值是一個具有listen、get方法的對象,我們可以在express的入口進行定義,從而目光轉(zhuǎn)向?qū)?code>listen、get方法的實現(xiàn)了
listen方法就是對原生的http模塊的一個封裝,我們只要在執(zhí)行時利用原生 node 模塊http創(chuàng)建一個服務就可以了get方法和【均不匹配兼容】其實是一個路由功能,目前可以先簡單的用一個隊列去實現(xiàn),每次執(zhí)行get等路由方法,就將路徑和對應處理函數(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服務功能實現(xiàn)示例的詳細內(nèi)容,更多關于express提供http服務的資料請關注腳本之家其它相關文章!
相關文章
node 使用multer中間件上傳報錯Unexpected end of fo
再前幾天還是可以正常上傳,但今天運行出現(xiàn)該報錯,下面通過場景分析給大家介紹node使用multer中間件上傳,報錯Unexpected end of form的解決方案,感興趣的朋友一起看看吧2025-03-03
基于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方法使用說明,本文介紹了fs.readFileSync的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下2014-12-12

