网站建设管理总结县政府站长之家点击进入
在 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
头,以确保客户端正确解析响应内容。