亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

文字

概述

Express 5.0仍處于alpha版本階段,但這里是發(fā)布版本中的更改預(yù)覽以及如何將Express 4應(yīng)用程序遷移到Express 5。

Express 5與Express 4沒有太大差別:對API的更改沒有3.0至4.0那么重要。雖然基本的API保持不變,但仍然存在重大變化; 換句話說,如果您將其更新為使用Express 5,則現(xiàn)有Express 4程序可能無法正常工作。

要安裝最新的alpha版本并預(yù)覽Express 5,請在應(yīng)用程序根目錄中輸入以下命令:

$ npm install express@5.0.0-alpha.2 --save

然后,您可以運(yùn)行自動測試來查看失敗的情況,并根據(jù)下面列出的更新修復(fù)問題。解決測試失敗后,運(yùn)行您的應(yīng)用程序以查看發(fā)生了什么錯誤。如果應(yīng)用程序使用任何不受支持的方法或?qū)傩?,就能馬上發(fā)現(xiàn)。

Express 5的改進(jìn)

以下是將作為Express用戶影響您的更改列表(截至alpha 2版本)。查看拉取請求以獲取所有計劃功能的列表。

刪減的方法和屬性

  • app.del()

  • app.param(fn)

  • Pluralized method names

  • Leading colon in name argument to app.param(name, fn)

  • req.param(name)

  • res.json(obj, status)

  • res.jsonp(obj, status)

  • res.send(body, status)

  • res.send(status)

  • res.sendfile()

修改的

  • app.router

  • req.host

  • req.query

改進(jìn)

  • res.render()

刪除的方法和屬性

如果您在應(yīng)用中使用這些方法或?qū)傩灾械娜魏我环N,它會崩。因此,在更新到版本5后,您需要更改應(yīng)用。

app.del()

Express 5不再支持該app.del()功能。如果你使用這個函數(shù)會拋出一個錯誤。要注冊HTTP DELETE路由,請改用該app.delete()函數(shù)。

最初del被用來代替JavaScript delete,因為delete是一個保留關(guān)鍵字。但是,從ECMAScript 6開始,delete其他保留關(guān)鍵字可合法用作屬性名稱。

app.param(fn)

app.param(fn)簽名用于修改app.param(name, fn)功能的行為。它自v4.11.0以來已被棄用,并且Express 5根本不再支持。

多元化的方法名稱

以下方法名稱已被復(fù)數(shù)化。在Express 4中,使用舊方法會導(dǎo)致棄用警告。Express 5不再支持它們:

req.acceptsCharset()被替換為req.acceptsCharsets()。

req.acceptsEncoding()被替換為req.acceptsEncodings()。

req.acceptsLanguage()被替換為req.acceptsLanguages()。

Leading colon (:) in the name for app.param(name, fn)

app.param(name, fn)函數(shù)名稱中的前導(dǎo)冒號(:) 是Express 3的補(bǔ)充,為了向后兼容,Express 4支持使用棄用聲明。Express 5會逐漸忽略這一點,并使用name參數(shù)而不用冒號加前綴。

如果你遵循app.param的Express 4文檔,這應(yīng)該不會影響你的代碼,因為它沒有提到前導(dǎo)冒號。

req.param(name)

這種可能令人困惑的檢索表單數(shù)據(jù)的方法已被刪除。現(xiàn)在,您可以專門尋找在提交的參數(shù)名稱req.params,req.bodyreq.query對象。

res.json(obj, status)

Express 5不再支持res.json(obj, status)簽名。相反,設(shè)置狀態(tài),然后將其鏈接到res.json()的方法,比如:res.status(status).json(obj)

res.jsonp(obj, status)

Express 5不再支持簽名res.jsonp(obj, status)。相反,設(shè)置狀態(tài),然后將其鏈接到res.jsonp()的方法,比如:res.status(status).jsonp(obj)

res.send(body, status)

Express 5不再支持res.send(obj, status)簽名。相反,設(shè)置狀態(tài),然后將其鏈接到res.send()方法,比如:res.status(status).send(obj)。

res.send(status)

Express 5不再支持res.send(status)簽名,其中status是一個數(shù)字。相反,使用res.sendStatus(statusCode)函數(shù)設(shè)置HTTP響應(yīng)標(biāo)頭狀態(tài)碼并發(fā)送代碼的文本版本:“Not Found”,“Internal Server Error”等。如果您需要使用res.send()函數(shù)發(fā)送號碼,請引用該號碼以將其轉(zhuǎn)換為字符串,以便Express不會將其解釋為嘗試使用不受支持的舊簽名。

res.sendfile()

res.sendfile()功能已被Express 5中的駝峰式版本res.sendFile()取代。

修改的

app.router

在Express 4中刪除的對象app.router已經(jīng)在Express 5中復(fù)出。在新版本中,該對象只是對基本Express路由器的引用,與Express 3中的應(yīng)用程序不得不明確加載該對象不同。

req.host

在Express 4中,如果req.host功能存在,則該功能會錯誤地將端口號除去。在Express 5中,端口號保持不變。

req.query

在Express 4.7和Express 5以后,查詢解析器選項可以接受,false以便在您想使用自己的函數(shù)用于查詢字符串解析邏輯時禁用查詢字符串解析。

改進(jìn)

res.render()

此方法現(xiàn)在對所有視圖引擎實施異步行為,避免由具有同步實現(xiàn)且違反推薦界面的視圖引擎引起的錯誤。

上一篇: 下一篇: