摘要:方法此中間件在及更高版本中可用。由于的形狀基于用戶控制的輸入,因此該對象中的所有屬性和值都是不可信的,應該在信任之前進行驗證。注意為獲得最佳結果,請使用反向代理緩存來提高服務靜態(tài)資源的性能。
express()
創(chuàng)建一個Express應用程序,express()函數(shù)是express模塊??導出的頂級函數(shù)。
var express = require("express"); var app = express();方法 express.json([options])
此中間件在Express v4.16.0及更高版本中可用。
這是Express中的內(nèi)置中間件函數(shù),它使用JSON有效負載解析傳入的請求,并基于body-parser。
返回僅解析JSON的中間件,并僅查看Content-Type header與type選項匹配的請求,此解析器接受body的任何??Unicode編碼,并支持gzip的自動解壓和deflate編碼。
在中間件(即req.body)之后的request對象上填充包含已解析數(shù)據(jù)的新body對象,或如果沒有要解析的body則為空對象({})、Content-Type不匹配、或發(fā)生錯誤。
由于req.body的形狀基于用戶控制的輸入,因此該對象中的所有屬性和值都是不可信的,應該在信任之前進行驗證。例如,req.body.foo.toString()可能以多種方式失敗,例如foo可能不存在或者可能不是字符串,而toString可能不是函數(shù),而是字符串或其他用戶輸入。
下表描述了可選options對象的屬性。
屬性 | 描述 | 類型 | 默認 |
---|---|---|---|
inflate | 啟用或禁用處理壓縮的body,禁用時,壓縮的body會被拒絕。 | Boolean | true |
limit | 控制最大請求體大小,如果這是一個數(shù)字,則該值指定字節(jié)數(shù); 如果是字符串,則將值傳遞給bytes庫以進行解析; |
混合 | "100kb" |
reviver |
reviver選項作為第二個參數(shù)直接傳遞給JSON.parse; 你可以在有關JSON.parse的MDN文檔中找到有關此參數(shù)的更多信息; |
函數(shù) | null |
strict | 啟用或禁用僅接受數(shù)組和對象; 禁用時將接受JSON.parse接受的任何內(nèi)容; |
Boolean | true |
type | 這用于確定中間件將解析的媒體類型; 此選項可以是字符串、字符串數(shù)組或函數(shù); 如果不是函數(shù),則將type選項直接傳遞給type-is庫, 這可以是擴展名(如json)、mime類型(如application/json), 或帶有通配符的mime類型(如*/*或*/json); 如果是函數(shù),則將type選項作為fn(req)調(diào)用, 如果返回truthy值,則解析請求 |
混合 | "application/json" |
verify | 此選項(如果提供)稱為verify(req, res, buf, encoding); 其中buf是原始請求體的Buffer; encoding是請求的編碼,可以通過拋出錯誤來中止解析。 |
函數(shù) | undefined |
這是Express中的內(nèi)置中間件函數(shù),它提供靜態(tài)文件,基于serve-static。
注意:為獲得最佳結果,請使用反向代理緩存來提高服務靜態(tài)資源的性能。
root參數(shù)指定從中提供靜態(tài)資源的根目錄,該函數(shù)通過將req.url與提供的root目錄相結合來確定要提供的文件。當找不到文件時,它不是發(fā)送404響應,而是調(diào)用next()繼續(xù)下一個中間件,允許堆疊和回退。
下表描述了options對象的屬性,另請參見下面的示例。
屬性 | 描述 | 類型 | 默認 |
---|---|---|---|
dotfiles | 確定如何處理dotfiles(以點“.”開頭的文件或目錄); 請參閱下面的dotfiles |
String | “ignore” |
etag | 啟用或禁用etag生成,注意:express.static總是發(fā)送弱ETag | Boolean | true |
extensions | 設置文件擴展名回退:如果找不到文件, 搜索具有指定擴展名的文件并提供找到的第一個文件; 例如:["html", "htm"] |
混合 | false |
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/100478.html
摘要:調(diào)試在內(nèi)部使用模塊來記錄有關路由匹配正在使用的中間件函數(shù)應用程序模式以及請求響應周期流的信息。在上,使用相應的命令。生成的應用程序命令生成的應用程序也使用模塊,其的命名空間的范圍限定為應用程序的名稱。 調(diào)試Express Express在內(nèi)部使用debug模塊來記錄有關路由匹配、正在使用的中間件函數(shù)、應用程序模式以及請求—響應周期流的信息。 debug就像是console.log的增強...
摘要:要使用多個靜態(tài)資源目錄,請多次調(diào)用中間件函數(shù)按照使用中間件函數(shù)設置靜態(tài)目錄的順序查找文件。注意為獲得最佳結果,請使用反向代理緩存來提高服務靜態(tài)資源的性能。 靜態(tài)文件 要提供靜態(tài)文件(如images、CSS文件和JavaScript文件),請使用Express中的express.static內(nèi)置中間件功能,函數(shù)簽名是: express.static(root, [options]) ro...
摘要:使用承諾和異步功能來擺脫回調(diào)地獄的應用程序,并簡化錯誤處理。它暴露了自己的和對象,而不是的和對象。因此,可被視為的模塊的抽象,其中是的應用程序框架。這使得中間件對于整個堆棧而言不僅僅是最終應用程序代碼,而且更易于書寫,并更不容易出錯。 Koa 與 Express 此系列文章的應用示例已發(fā)布于 GitHub: koa-docs-Zh-CN. 可以 Fork 幫助改進或 Star 關注更新...
摘要:應用程序生成器使用應用程序生成器工具快速創(chuàng)建應用程序框架。生成的應用程序具有以下目錄結構生成器創(chuàng)建的應用程序結構只是構建應用程序的眾多方法之一,隨意使用此結構或修改它以最好地滿足你的需求。 Express應用程序生成器 使用應用程序生成器工具express-generator快速創(chuàng)建應用程序框架。 express-generator包安裝了express命令行工具,使用以下命令執(zhí)行此操...
摘要:常見問題我該如何構建我的應用程序這個問題沒有明確的答案,答案取決于你的應用程序規(guī)模和所涉及的團隊,為了盡可能靈活,在結構方面沒有做出任何假設。請參閱,了解以模型為中心的基于的框架。 常見問題 我該如何構建我的應用程序? 這個問題沒有明確的答案,答案取決于你的應用程序規(guī)模和所涉及的團隊,為了盡可能靈活,Express在結構方面沒有做出任何假設。 在你喜歡的任何目錄結構中,路由和其他特定于...
閱讀 737·2023-04-25 19:28
閱讀 1397·2021-09-10 10:51
閱讀 2393·2019-08-30 15:55
閱讀 3416·2019-08-26 13:55
閱讀 3005·2019-08-26 13:24
閱讀 3332·2019-08-26 11:46
閱讀 2760·2019-08-23 17:10
閱讀 1422·2019-08-23 16:57