yutent 2ab38350a8 | ||
---|---|---|
lib | ||
.gitignore | ||
LICENSE | ||
Readme.md | ||
index.js | ||
package.json |
Readme.md
@gm5/equest
对Http的request进一步封装, 提供常用的API.
Install
npm i @gm5/request
Usage
import Request from '@gm5/request'
import http from 'http'
http
.createServer((req, res) => {
let request = new Request(req, res)
console.log(request.origin) // {req, res}
// print the fixed url
console.log(request.url)
request.ip() // get client ip address
// http://test.com/?foo=bar
request.get('foo') // bar
})
.listen(3000)
API
origin
返回原始的response & request对象
console.log(request.origin) // {req: request, res: response}
app
返回一级路由的名字
// abc.com/foo/bar
console.log(request.app) // foo
path
以数组形式,返回除一级路由之外剩下的路径
// abc.com/foo/bar/aa/bb
console.log(request.path) // ['bar', 'aa', 'bb']
url
返回修正过的url路径
// abc.com/foo/bar/aa/bb
// abc.com////foo///bar/aa/bb
console.log(request.url) // foo/bar/aa/bb
get([key[,xss]])
- key
<String>
字段名 [可选], 不则返回全部参数 - xss
<Boolean>
是否进行xss过滤 [可选], 默认为ture
返回URL上的query参数, 类似于
$_GET[]
;
// http://test.com?name=foo&age=18
request.get('name') // foo
request.get('age') // 18
request.get() // {name: 'foo', age: 18}
request.get('weight') // return null if not exists
post([key[,xss]])
- key
<String>
optional - xss
<Boolean>
optional
读取post请求的body, 类似于
$_POST[]
.
该方法返回的是Promise对象
// http://test.com
await request.post('name') // foo
await request.post('age') // 18
// return all if not yet argument given
await request.post() // {name: 'foo', age: 18}
await request.post('weight') // return null if not exists
header([key])
- key
<String>
字段名[可选], 不传则返回全部
返回请求头
request.header('user-agent') // Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 ...
// return all if not yet argument given
request.header() // {'user-agent': '...'[, ...]}
ip()
获取客户端IP地址.
It would return '127.0.0.1' maybe if in local area network.
cookie(key)
获取客户端带上的cookie. 不传key时返回所有的