@xie-work/common-http
v0.3.2
Published
## 安装与使用
Downloads
211
Readme
@xie-work/common-http
安装与使用
1. 安装
在前端项目中使用 npm
或者 yarn
命令进行安装
# use npm
npm install @xie-work/common-http
# use yarn
yarn add @xie-work/common-http
2. 使用
import {server} from '@xie-work/common-http'
import * as https from "node:https";
const httpServer = server.listen(3000)
// 匹配所有的请求
httpServer.route("hello world")
// 精准匹配/api
httpServer.route("/api", "hello world")
// 匹配/api/下的所有请求
httpServer.route("/api/*", "hello world")
// 支持方法匹配
httpServer.route("POST", "/api", "hello world")
httpServer.route("*", "/api", "hello world")
// 支持函数返回
httpServer.route("/api", () => "hello world") // text/plain
httpServer.route("/api", () => ({a: 1})) // application/json
// 支持自处理
httpServer.route("/api", (res, req) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('hello world');
})
// 支持异步处理
httpServer.route("/api", async (res, req) => {
for (let i = 0; i < 10; i++) {
res.write('hello world\n');
await new Promise(resolve => setTimeout(resolve, 1000));
}
})
- 精准匹配的优先级高于通配符匹配
- 通配符之间的优先级是按照定义的顺序,后定义的优先级高
- 支持函数返回,函数返回的数据会根据返回的数据类型自动设置
Content-Type
- 函数处理的过程中如果通过
res.write
写入了数据,则上面的规则会失效 - 不建议在函数处理的过程中使用
res.end
,因为res.end
会关闭连接,函数的返回值会被忽略
处理函数的参数说明
- res: 与nodejs的http模块的response对象一致
- req: 与nodejs的http模块的request对象一致,并且扩展了多个属性:
uri
: 请求的urimethod
: 请求的方法headers
: 请求的头部信息的对象remoteAddress
: 请求的远程地址remotePort
: 请求的远程端口body
: post请求的body,searchParams
: 请求的url中的search字符串转换成的URLSearchParams对象params
: 自动根据请求类型将body
或者searchParams
转换成的对象