91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node有哪些中間件

發布時間:2021-12-10 14:09:57 來源:億速云 閱讀:158 作者:小新 欄目:web開發

這篇文章給大家分享的是有關node有哪些中間件的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

node中間件有:1、koa-bodyparser;2、koa-body;3、靜態資源管理器koa-static;4、cors;5、koa-cors;6、koa-cors2設置請求頭等等。

本文操作環境:Windows7系統,nodejs10.16.2版,Dell G3電腦。

node中間件類型:

node中間件就是封裝在程序中處理http請求的功能。node中間件是在管道中執行。中間件位于客戶機/ 服務器的操作系統之上,管理計算機資源和網絡通訊。

中間件為主要的邏輯業務所服務,可分為:應用級中間件、路由級中間件、內置中間件、第三方中間件、錯誤級中間件。

node常用的中間件:

在node的學習過程中積累了許多好用的中間件。這些中間件大部分要個koa配合使用

1、koa-bodyparser

這個插件使用來解析前端post請求帶來的參數的

//入口文件
const bodyParser = require('koa-bodyparser');
app.use(bodyParser({//設置可以接收的數據類型
    enableTypes:['json', 'form', 'text']
}))
async function (ctx) {
    console.log(ctx.request.body)
    ctx.req.on('data',(data) => {
        console.log(JSON.parse(data),'文件')
    })
}

在沒有引入koa-bodyparser的情況下只能通過ctx.req.on('data',callback)來獲取參數

而引入中間件后只要ctx.request.body就可以獲取到參數。相比第一種便利很多。

2、koa-body

這個插件是用來獲取請求中上傳的文件和文件信息比如圖片過zip文件

const koaBody    = require('koa-body')
app.use(koaBody({
        multipart: true,
        formidable: {
            maxFileSize: 20 * 1024 * 1024    // 設置上傳文件大小最大限制,默認2M
        }
    }))

在請求的處理中就可以直接通過ctx.request.files就能獲取到所有上傳的文件的信息。

注意!!!用了koa-body就不要在使用koa-bodyparser會沖突導致前端的post請求返回的status碼為canceled

3、靜態資源管理器koa-static

在本地測試的時候我上傳了一張圖片,然后將圖片地址打印后是一長串的c://.../name/.png,這樣雖然在本地能夠訪問但是如果放到服務器上就行不通了!

通過引入koa-static可以將靜態文件地址指定到項目路徑上的某個文件夾然后通過koa監聽的端口直接http://192.168.0.177:3030/name.png就能訪問圖片了

const koaStatic  = require('koa-static')
app.use(koaStatic('./public'))//括號中是設置的靜態文件路徑

4、cors、koa-cors、koa-cors2設置請求頭

這幾個中間件基本我都是用來配置跨域和請求頭的信息

const cors       = require('koa2-cors') 
app.use(cors({
    exposeHeaders: ['multipart/form-data','application/x-www-form-urlencoded']
}))

可以自己設置參數也可以不設置參數直接app.use(cors())就可以跨域。

這里說到跨域就順便提一提原生node跨域的設置方法(同樣可以設置請求頭的各種配置)

app.use(async (ctx, next) => {
   ctx.set('Access-Control-Allow-Origin', ctx.headers.origin)//'*'有可能會問題
   ctx.set('Access-Control-Allow-Credentials', 'true')
   ctx.set('Access-Control-Allow-Headers', 'Origin ,multipart/form-data, X-Requested-With, Content-Type, Accept')
   await next()
})

感謝各位的閱讀!關于“node有哪些中間件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳高县| 南康市| 手游| 信阳市| 海晏县| 仙居县| 湘潭市| 聂荣县| 峨山| 遵化市| 略阳县| 海晏县| 留坝县| 斗六市| 雅江县| 宁乡县| 临漳县| 白河县| 建瓯市| 手机| 内黄县| 承德市| 长顺县| 太仆寺旗| 闽侯县| 宕昌县| 安新县| 灌云县| 光山县| 思南县| 喀什市| 定日县| 岑巩县| 剑河县| 嘉黎县| 谢通门县| 施秉县| 太白县| 获嘉县| 建平县| 澜沧|