request

request

request对象包含本次请求的所有信息。

属性和方法

名称类型参数返回值说明
url属性string请求的URL地址
method属性string请求方法
host属性string请求方法
proto属性string协议
query属性object请求的query参数
param属性objectURL参数
header属性object请求头
body属性any请求体
multipartFiles方法callback function, [maxmemory]any文件上传

url

server.any("/test", (ctx) => {
    //请求url地址
    console.log(ctx.request.url);
});

method

server.any("/test", (ctx) => {
    //请求方法
    console.log(ctx.request.method);
});

host

request.host 用于获取当前 HTTP 请求的主机信息(Host 头内容)。

server.any("/test", (ctx) => {
    console.log(ctx.request.host);
});

proto

server.any("/test", (ctx) => {
    //请求协议
    console.log(ctx.request.proto);
});

query

server.any("/test", (ctx) => {
    //请求query参数
    console.log(ctx.request.query);
});

param

server.any("/test/{name}/{id}", (ctx) => {
    //请求param参数
    console.log(ctx.request.param);
});
server.any("/test/{name}/{id}", (ctx) => {
    //请求头
    console.log(ctx.request.header);
});

body

server.any("/test", (ctx) => {
    //请求体
    console.log(ctx.request.body);
});

multipartFiles

通过request.multipartFiles提供的回调函数读取上传的文件,该函数的语法:

ctx.request.multipartFiles(callback(paramName, fileName, size, reader), [maxmemory]);
  • callback: 回调函数

    参数为一个函数,该函数接收4个参数:

    1. paramName: 表单变量名
    2. fileName: 文件名,
    3. size: 文件大小
    4. reader: 文件流对象
  • maxmemory: 可选参数

    默认值是:32 << 20,即32MB。

    该参数用来设置文件上传时最大能使用的内存空间,如果请求体大小超过该限制,则其余部分会被存放在硬盘的临时文件中。

示例

将上传的文件保存到本地硬盘上

server.any("/test", (ctx) => {
    //通过request.multipartFiles提供的回调函数读取上传的文件
    ctx.request.multipartFiles((paramName, fileName, size, reader) => {
        console.log(paramName, fileName, size, reader)
        //新建文件
        let f = fs.openFile("./xxx.xlsx", "writeOnly", "create")
        //通过文件流reader对象将内容输出到文件中
        file.write(reader);
        //关闭本地文件
        file.close();
    }, 10 << 20); //最大内存使用10MB
});
更新时间 2/11/2026, 4:46:01 PM