HTTP API

API说明示例
r.headersIn请求头r.headersIn['User-Agent']
r.headersOut响应头r.headersOut['Content-Type'] = 'text/plain';
r.args请求参数r.args['foo']
r.uri请求 URIr.uri
r.method请求方法r.method
r.httpVersionHTTP 版本r.httpVersion
r.remoteAddress客户端 IPr.remoteAddress
r.return()返回响应r.return(200, "Hello world!\n");
r.error()记录错误日志r.error("error");
r.log()记录日志r.log("log");
r.warn()记录警告日志r.warn("warn");
r.subrequest()子请求r.subrequest('/status', ...)

HTTP API 原理: HTTP API 是 njs 提供的 HTTP 请求处理 API,可以用于访问 HTTP 请求的信息,如请求头、请求参数、请求 URI、请求方法、HTTP 版本、客户端 IP 等。

Stream API

API说明示例
s.remoteAddress客户端 IPs.remoteAddress
s.variables变量s.variables['foo']
s.log()日志s.log("log");
s.warn()警告日志s.warn("warn");
s.error()错误日志s.error("error");
s.on()事件监听s.on('upload', ...)
s.off()事件取消s.off('upload', ...)

Stream API 原理: Stream API 是 njs 提供的 TCP/UDP 请求处理 API,可以用于访问 TCP/UDP 请求的信息,如客户端 IP、变量等。

示例

function hello(r) {
    r.return(200, "Hello world!\n");
}

export default { hello };

示例说明

  • function hello(r):定义一个函数,处理 HTTP 请求
  • r.return(200, "Hello world!\n"):返回响应
  • export default { hello }:导出函数

示例原理hello 函数用于处理 HTTP 请求,r 参数是 HTTP 请求对象,可以使用 r.return() 返回响应。

最佳实践

  1. 使用 HTTP API:使用 HTTP API,处理 HTTP 请求
  2. 使用 Stream API:使用 Stream API,处理 TCP/UDP 请求
  3. 记录日志:记录日志,便于故障排查
  4. 处理异常:处理异常,避免脚本错误
  5. 测试脚本:测试脚本,确保脚本正确