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