net.listen Web 服务

net.listen Web 服务

net.listen Web 服务

功能

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

语法

参数

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

sites 字段

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

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

upload 字段

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

static 字段

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

ssl 字段

字段类型必填默认值说明
certStringTLS 证书文件路径。
keyStringTLS 私钥文件路径。

返回值

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

WebServer 字段和方法

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

示例

注意事项

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