案例

案例

  • 案例1:返回json

ctx.body的类型为对象时,则自动会设置为json格式返回。

server.get("/api", (ctx) => {
	ctx.body = {code: 0, name: "张三"}
})
  • 案例2:返回文本
server.get("/api", (ctx) => {
	ctx.body = "hello"
})
  • 案例3:文件下载
server.any("/test", (ctx) => {
	try {
		//读取本地文件
		let file = fs.readFile("./http/test1.js");
		//设置文件下载的响应头
		ctx.header.set("Content-Disposition", `attachment; filename="文件.js"`);
		ctx.header.set("Content-Type", "text/javascript; charset=utf-8");
		//文件内容设置为body
		ctx.body = file;
	} catch (e) {
		//文件读取错误后,提供错误响应
		ctx.body = {code: 1, error: e.message};
	}
});
  • 案例4:excel文件生成并返回下载
server.any("/test", (ctx) => {
	//创建excel文件
	let file = excel.createFile();
	try {
		//写入文件内容
		file.setCellValue("Sheet1", "A1", "测试1");
		file.setCellValue("Sheet1", "A2", "测试2");
		//设置文件下载和文件类型
		ctx.header.set("Content-Disposition", `attachment; filename="文件1.xlsx"`);
		ctx.header.set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
		//获取文件的字节流
		ctx.body = file.getBuffer();
	} catch (e) {
		//异常报错
		ctx.body = {code: 1, error: e.message};
	} finally {
		//记得一定要关闭文件
		file.close();
	}
});
更新时间 8/16/2024, 3:17:38 PM