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 |