config
config
参数
config:object
服务器配置addr:string
服务器监听地址,格式:ip:port
,例如:192.168.1.110:8080
,如果省略ip将监听所有本机上的可用ip,例如::8080
path:string
所有路由的根路径cors:object
跨域配置allowedOrigins:string[]
是一个跨域请求的源数组。如果数组中存在特殊值 "" ,则允许来自所有源的跨域请求。一个源可以包含一个通配符()来替换 0 个或多个字符(例如:http://* .domain.com)。使用通配符意味着会有小的性能损失。每个源只能使用一个通配符。默认值为 ["*"]。allowedMethods:string[]
客户端在执行跨域请求时允许使用的方法列表。默认值为简单方法(HEAD、GET 和 POST)。allowedHeaders:string[]
客户端在执行跨域请求时允许使用的请求头列表。如果列表中存在特殊值 "*" ,则表示允许所有头部。默认值是 []。但是 "Origin" 默认永远在列表中。exposedHeaders:string[]
定义哪些请求头可以被客户端(如 JavaScript)作为响应的一部分访问。默认值:[]allowCredentials:boolean
请求是否可以包含用户凭证,如 cookies、HTTP 认证或客户端 SSL 证书。maxAge:number
指示预检请求的结果可以被缓存多长时间(以秒为单位)。
ssl:object
ssl证书配置cert:string
key:string
static:object[]
静态资源托管requestPath:string
静态资源的请求路径filePath:string
静态资源的本地存储路径
配置示例
let config = {
addr: ":8081",//配置服务器端口号
path: "", //所有路由的根路径
cors: {
//allowedOrigins 是一个跨域请求的源数组。如果数组中存在特殊值 "*",则允许来自所有源的跨域请求。
//一个源可以包含一个通配符(*)来替换 0 个或多个字符(例如:http://*.domain.com)。
//使用通配符意味着会有小的性能损失。每个源只能使用一个通配符。默认值为 ["*"]。
allowedOrigins: ["*"],
//allowedMethods 是客户端在执行跨域请求时允许使用的方法列表。默认值为简单方法(HEAD、GET 和 POST)。
allowedMethods: ["GET", "POST", "HEAD"],
//allowedHeaders 是客户端在执行跨域请求时允许使用的请求头列表。如果列表中存在特殊值 "*",则表示允许所有头部。默认值是 []。
//但是 "Origin" 默认永远在列表中。
allowedHeaders: [],
//exposedHeaders 定义哪些请求头可以被客户端(如 JavaScript)作为响应的一部分访问。默认值:[]
exposedHeaders: [],
//allowCredentials 请求是否可以包含用户凭证,如 cookies、HTTP 认证或客户端 SSL 证书。
allowCredentials: false,
//MaxAge 指示预检请求的结果可以被缓存多长时间(以秒为单位)。
maxAge: 0
},
//https证书配置
ssl: {
cert: "xx",
key: "xx"
},
static: [{
requestPath: "/static", //静态资源的请求路径
filePath: "/http/static" //静态资源的本地存储路径
}]
};
addr
服务器监听地址 格式
ip:port
参数
- ip: (可选) 本机IP地址,不设置ip地址时,默认监听当前主机上的所有ip
- port: 端口号
示例
{
addr:":8080"
}
path
所有api路由的根路径,默认为空字符串
示例
当访问/api/test
时,服务报404错误,正确的路径是/test/api/test
import {HttpServer} from "http"
let config = {
path: "/test",
}
const server = new HttpServer(config)
//注册地址为/api/test的api
server.any("/api/test", (ctx) => {
ctx.body = {code: 0}
})
server.start()
cors
cors
配置跨域
示例
{
cors: {
//allowedOrigins 是一个跨域请求的源数组。如果数组中存在特殊值 "*",则允许来自所有源的跨域请求。
//一个源可以包含一个通配符(*)来替换 0 个或多个字符(例如:http://*.domain.com)。
//使用通配符意味着会有小的性能损失。每个源只能使用一个通配符。默认值为 ["*"]。
allowedOrigins: ["*"],
//allowedMethods 是客户端在执行跨域请求时允许使用的方法列表。默认值为简单方法(HEAD、GET 和 POST)。
allowedMethods: ["GET", "POST", "HEAD"],
//allowedHeaders 是客户端在执行跨域请求时允许使用的请求头列表。如果列表中存在特殊值 "*",则表示允许所有头部。默认值是 []。
//但是 "Origin" 默认永远在列表中。
allowedHeaders: [],
//exposedHeaders 定义哪些请求头可以被客户端(如 JavaScript)作为响应的一部分访问。默认值:[]
exposedHeaders: [],
//allowCredentials 请求是否可以包含用户凭证,如 cookies、HTTP 认证或客户端 SSL 证书。
allowCredentials: false,
//MaxAge 指示预检请求的结果可以被缓存多长时间(以秒为单位)。
maxAge: 0
},
}
ssl
配置HTTPS证书 示例
{
ssl: {
cert: "xx",
key: "xx"
}
}
static
配置静态资源托管,相当于一个普通的web服务器
参数
- requestPath: 客户端请求的url前缀路径
- filePath: 服务器存储静态资源的路径
示例
{
static:[{
requestPath: "/static1", //静态资源的请求路径
filePath: "/http/static1" //静态资源的本地存储路径
}, {
requestPath: "/static2", //静态资源的请求路径
filePath: "/http/static2" //静态资源的本地存储路径
}]
}