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" //静态资源的本地存储路径
	}]
}
更新时间 8/20/2024, 3:02:59 PM