request

request

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

属性和方法

名称类型参数返回值说明
url属性string请求的URL地址
method属性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);
});

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
});
更新时间 8/20/2024, 5:47:30 PM