net.listen Web 服务

net.listen Web 服务

net.listen Web 服务

功能

net.listen({type: 'web'}) 启动 BT Web 服务。每个请求都会执行站点入口 BT 文件,并注入 web 请求上下文。

语法

参数

字段类型必填默认值说明
typeString是无固定为 web。
bindString否0.0.0.0:8080监听地址。
sitesArray是无站点配置数组,至少一个。
sites[].rootString否web/站点根目录。
sites[].entryString否main.bt请求入口 BT 文件。
sites[].domainsArray否[]Host 过滤域名。
sites[].upload.tempString否temp/上传文件临时目录。
sites[].staticObject否无静态文件配置对象;字段见下方 static 字段。
sites[].sslObject否无TLS 证书配置对象;字段见下方 ssl 字段。

sites 字段

sites 是站点配置数组。每个站点对象字段如下:

字段类型必填默认值说明
rootString否web/站点根目录。入口脚本、默认静态目录等相对路径会基于该目录解析。
entryString否main.bt每个动态请求执行的 BT 入口文件。
domainsArray否[]Host 过滤域名列表。为空数组时作为不限制域名的默认站点。
uploadObject否无上传文件配置对象;字段见下方 upload 字段。
staticObject否无静态文件配置对象。传入该对象即启用静态文件服务。
sslObject否无TLS 证书配置对象。必须同时提供 cert 和 key 才会启用 HTTPS。

upload 字段

字段类型必填默认值说明
tempString否temp/上传文件临时保存目录。web.files[*].path 和 web.files[*].file 会指向这里保存后的文件。

static 字段

字段类型必填默认值说明
routeString否/static/{**}静态资源路由匹配规则。
pathString否root/static静态文件目录。未填写时使用当前站点 root 下的 static 目录。
defaultString否index.html访问目录时尝试返回的默认文件名。
listBool否false是否允许目录列表展示。生产环境通常保持 false。
cache_controlString否空字符串静态文件成功响应写入的 Cache-Control 头。为空时不主动写入该头。
chunk_sizeInt否0静态文件分块读取字节数。小于等于 0 时使用框架默认值 1048576。

ssl 字段

字段类型必填默认值说明
certString是无TLS 证书文件路径。
keyString是无TLS 私钥文件路径。

返回值

类型说明
WebServer返回 Web 服务句柄。

WebServer 字段和方法

名称类型说明
addrString实际监听地址,格式通常为 host:port。
typeString固定为 web。
close()Fn -> Bool关闭后台 Web 服务,成功返回 true。

示例

注意事项

  • root、upload.temp、static.path、ssl.cert、ssl.key 的相对路径基于调用源码文件所在目录解析;@ 表示项目根。
  • ssl.cert 和 ssl.key 任一为空时不会启用 TLS。
  • 动态请求体、Header、上传文件和动态响应体有默认上限;配置方式见 web 请求上下文 的资源边界说明。
  • 静态文件默认支持 ETag、Last-Modified、条件请求和 HTTP Range;cache_control 只负责额外写入缓存策略。
  • chunk_size 控制静态文件分块读取大小,不会把大文件一次性读入内存。