当前位置: 首页 > news >正文

Nestjs返回格式小结

在 NestJS 中,除了 text/event-stream(用于 Server-Sent Events)之外,还有多种格式的返回方式,具体取决于你的应用需求。以下是一些常见的返回格式及其示例:

1. JSON 格式

@Get('json')
getJsonResponse(@Res() res) {const data = { message: 'Hello, world!', status: 'success' };return res.json(data);
}

2. HTML 格式

@Get('html')
getHtmlResponse(@Res() res) {const html = '<h1>Hello, world!</h1>';return res.send(html);
}

3. XML 格式

@Get('xml')
getXmlResponse(@Res() res) {const xml = `<response><message>Hello, world!</message></response>`;res.set('Content-Type', 'application/xml');return res.send(xml);
}

4. Plain Text

@Get('text')
getTextResponse(@Res() res) {const text = 'This is a plain text response.';return res.send(text);
}

5. File 下载

@Get('download')
downloadFile(@Res() res) {const file = '/path/to/file.txt';res.download(file, 'custom-filename.txt');
}

6. Streaming Response

@Get('stream')
streamResponse(@Res() res) {const stream = getSomeStream(); // 假设这是一个返回可读流的函数stream.pipe(res);
}

7. 204 No Content

@Delete('delete-item')
deleteItem(@Res() res) {// 假设这里执行了一些删除操作return res.status(204).send();
}

8. Custom Status Codes

@Get('custom-status')
getCustomStatusResponse(@Res() res) {return res.status(418).json({ message: "I'm a teapot" });
}

9. 发送文件

@Get('send-file')
sendFile(@Res() res) {return res.sendFile('/path/to/file.pdf');
}

10. Redirect Response

@Get('redirect')
redirectToExternal(@Res() res) {return res.redirect('https://example.com');
}

总结

NestJS 支持多种返回格式,可以根据具体的需求选择合适的返回方式。这些格式涵盖了常见的应用场景,如 API 响应、文件下载、流式响应等。根据需要设置合适的 Content-Type 头,以确保客户端正确解析响应内容。

http://www.lryc.cn/news/472638.html

相关文章:

  • 【力扣刷题实战】相同的树
  • Golang | Leetcode Golang题解之第515题在每个树行中找最大值
  • Zookeeper 对于 Kafka 的作用是什么?
  • Thread类及线程的核心操作
  • 算法|牛客网华为机试11-20C++
  • OpenAI低调发布多智能体工具Swarm:让多个智能体协同工作!
  • 性能之光 年度电竞性能旗舰iQOO 13发布
  • 如何避免因不熟悉数据保护法规而受损
  • LLaMA Factory 核心原理讲解
  • Java题集练习5
  • 操作系统学习笔记-2.3哲学家和管程问题
  • 2023年信息安全工程师摸底测试卷
  • ReactOS系统中平衡二叉树。给定地址超导其所属区块MmFindRegion()
  • 基于TESSY的单元测试与分类树方法深入解析
  • 整理了一些大模型的课程,非常详细,大模型零基础入门到精通,收藏我这一篇就够了
  • 区块链国赛题目--食品溯源(模块三)
  • 【Searxng】Searxng docker 安装
  • Java Lock/AQS ReentrantLock 源码
  • 魔法伤害--是谁偷走了我的0
  • 【ArcGIS Pro实操第4期】绘制三维地图
  • Vuestic 整理使用
  • 学习伊圣雨老师的 epoll 编程
  • 详细了解C++11(1)
  • ITA的去锅盖处理流程
  • 日志管理系统的系统目标是什么?
  • uniapp 底部导航栏tabBar设置后不显示的问题——已解决
  • JVM 类加载器
  • 《C++长时间运行程序:驯服内存膨胀的“怪兽”》
  • ELK之路第二步——可视化界面Kibana
  • Nature Medicine病理AI汇总|CONCH:病理图像分析的零样本学习模型·顶刊精析·24-10-30