Node.js:ExpressWeb
API接口 express()
### express.json([options]) 这是Express中的一个内置中间件功能。它使用JSON有效负载解析传入请求,并基于主体解析器。 返回仅解析JSON并只查看Content-Type标头与Type选项匹配的请求的中间件。该解析器接受正文的任何Unicode编码,并支持gzip和deflate编码的自动膨胀。 由于req.body的形状是基于用户控制的输入,因此该对象中的所有属性和值都是不可信的,应该在信任之前进行验证。例如,req.body.foo.toString()可能会以多种方式失败,例如,foo可能不存在或可能不是字符串,toString可能不是函数,而是字符串或其他用户输入。 ### express.raw() 这是Express中的一个内置中间件功能。它将传入的请求有效载荷解析为一个Buffer,并基于主体解析器。 返回中间件,该中间件将所有主体解析为Buffer,并且只查看Content-Type标头与Type选项匹配的请求。该解析器接受正文的任何Unicode编码,并支持gzip和deflate编码的自动膨胀。 在中间件(即req.body)之后,在请求对象上填充一个包含解析数据的新body Buffer,如果没有要解析的body、Content Type不匹配或发生错误,则填充一个空对象({})。 由于req.body的形状是基于用户控制的输入,因此该对象中的所有属性和值都是不可信的,应该在信任之前进行验证。例如,req.body.toString()可能会以多种方式失败,例如堆叠多个解析器req.body可能来自不同的解析器。建议在调用缓冲区方法之前测试req.body是否为缓冲区。 ### express.Router() ```js //创建一个路由 var router = express.Router([options]) ``` ### express.static() 这是Express中的一个内置中间件功能。它基于serve-static提供静态文件。 注意:为了获得最佳效果,请使用反向代理缓存来提高为静态资产提供服务的性能。 根参数指定为静态资产提供服务的根目录。该函数通过将req.url与提供的根目录相结合来确定要服务的文件。当找不到文件时,它不会发送404响应,而是调用next()来转移到下一个中间件,从而允许堆叠和回退。 ```js var options = { dotfiles: 'ignore', etag: false, extensions: ['htm', 'html'], index: false, maxAge: '1d', redirect: false, setHeaders: function (res, path, stat) { res.set('x-timestamp', Date.now()) } } app.use(express.static('public', options)) ``` ```js var path = require('path'); app.use(express.static(path.join(__dirname, 'public'))); ``` ### express.text() 这是Express中的一个内置中间件功能。它将传入的请求有效载荷解析为字符串,并基于主体解析器。 返回中间件,该中间件将所有主体解析为字符串,并且只查看Content-Type标头与Type选项匹配的请求。该解析器接受正文的任何Unicode编码,并支持gzip和deflate编码的自动膨胀。 在中间件(即req.body)之后,在请求对象上填充一个包含解析数据的新主体字符串,如果没有要解析的主体、内容类型不匹配或发生错误,则填充一个空对象({})。 由于req.body的形状是基于用户控制的输入,因此该对象中的所有属性和值都是不可信的,应该在信任之前进行验证。例如,req.body.trim()可能会以多种方式失败,例如堆叠多个解析器req.body可能来自不同的解析器。建议在调用字符串方法之前测试req.body是否为字符串。 ### express.urlencoded() 这是Express中的一个内置中间件功能。它使用url编码的有效载荷解析传入请求,并基于主体解析器。 返回中间件,该中间件只解析url编码的主体,并且只查看Content-Type标头与Type选项匹配的请求。该解析器只接受正文的UTF-8编码,并支持gzip和deflate编码的自动膨胀。 在中间件(即req.body)之后,在请求对象上填充一个包含解析数据的新主体对象,如果没有要解析的主体、内容类型不匹配或发生错误,则填充一个空对象({})。此对象将包含键值对,其中的值可以是字符串或数组(当extended为false时),也可以是任何类型(当extending为true时)。 由于req.body的形状是基于用户控制的输入,因此该对象中的所有属性和值都是不可信的,应该在信任之前进行验证。例如,req.body.foo.toString()可能会以多种方式失败,例如,foo可能不存在或可能不是字符串,toString可能不是函数,而是字符串或其他用户输入。
顶部
收展
底部
[TOC]
目录
Express/Node 入门
路由
中间件
API接口 express()
API接口 app()
API接口 res()
API接口 Router()
数据库操作 ODM mongoose
相关推荐
Node.js教程:新手入门
Node.js接口
朴灵《深入浅出 Node.js》