request
request
request
对象包含本次请求的所有信息。
属性和方法
名称 | 类型 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
url | 属性 | string | 请求的URL地址 | |
method | 属性 | string | 请求方法 | |
proto | 属性 | string | 协议 | |
query | 属性 | object | 请求的query参数 | |
param | 属性 | object | URL参数 | |
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);
});
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);
});
header
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个参数:
- paramName: 表单变量名
- fileName: 文件名,
- size: 文件大小
- 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
});