摘要:方法此中间件在及更高版本中可用。由于的形状基于用户控制的输入,因此该对象中的所有属性和值都是不可信的,应该在信任之前进行验证。注意为获得最佳结果,请使用反向代理缓存来提高服务静态资源的性能。
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 |
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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在结构方面没有做出任何假设。 在你喜欢的任何目录结构中,路由和其他特定于...
阅读 710·2023-04-25 19:28
阅读 1375·2021-09-10 10:51
阅读 2361·2019-08-30 15:55
阅读 3378·2019-08-26 13:55
阅读 2974·2019-08-26 13:24
阅读 3307·2019-08-26 11:46
阅读 2723·2019-08-23 17:10
阅读 1392·2019-08-23 16:57