共计 1561 个字符,预计需要花费 4 分钟才能阅读完成。
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.static(root, [options])
这是 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