javascript - 如何为每个 API 创建通用的 Nest JS API 响应格式?
问题描述
我是 Nestjs 的新手,一直坚持为所有 API 制作一个通用的响应体。目前,我正在使用地图从集合中获取响应,但不知道如何以下面提到的方式格式化响应。
我目前正在收到如下响应正文-
Response body
[
{
"userId": "602a0f175bbd45688cd001f4",
"firstName": "Gagan",
"lastName": "Pandya",
"email": "gagankumar.pandya@galaxyweblinks.in",
"status": "active"
},
{
"userId": "603f3b547508bbd77a3d6fb5",
"firstName": "Kunal",
"lastName": "Ghosh",
"email": "kunal.ghosh@galaxyweblinks.in",
"status": "active"
}
]
需要将其设置为-
{
"statusCode": 200,
"message": "User Listing",
"data":[
{
"userId": "602a0f175bbd45688cd001f4",
"firstName": "Gagan",
"lastName": "Pandya",
"email": "gagankumar.pandya@galaxyweblinks.in",
"status": "active"
},
{
"userId": "603f3b547508bbd77a3d6fb5",
"firstName": "Kunal",
"lastName": "Ghosh",
"email": "kunal.ghosh@galaxyweblinks.in",
"status": "active"
}
]
}
下面是我的控制器代码 -
@Get('/users-listing')
// @UseGuards(AuthGuard('jwt'))
// @Roles('Super Admin')
@ApiOperation({ title: 'Lists of users' })
@ApiOkResponse({})
@HttpCode(HttpStatus.OK)
async getAllUsers() {
return this.usersService.findAllUsers();
}
并请找到 service.ts 文件代码 -
async findAllUsers(): Promise<User[]> {
const users = await this.userModel.find().exec();
const usersArr = [];
await Promise.all(
users.map(async users => {
usersArr.push({ userId: users._id, firstName: users.firstName, lastName: users.lastName, email: users.email, status: users.status });
}),
);
return usersArr;
}
Thanks in advance!
解决方案
希望以下内容对您有所帮助
import {
Body,
Controller,
Get,
Param,
Res,
HttpStatus,
} from '@nestjs/common';
@Get('/users-listing')
// @UseGuards(AuthGuard('jwt'))
// @Roles('Super Admin')
@ApiOperation({ title: 'Lists of users' })
@ApiOkResponse({})
async getAllUsers(@Res() res) {
const users = this.usersService.findAllUsers();
return res.status(HttpStatus.OK).json({
status: 'success',
data: {
users,
}
});
}
推荐阅读
- powershell - powershell 从类型目录中选择所有对象
- c# - 版本高于项目的Mysql(C# WPF)
- angular - 当我的所有组件都@import“变量”时,如何向我的 SCSS 驱动的 Angular 应用程序添加对多个主题的支持?
- reactjs - 从同一文件导入简单函数并破坏测试时调用的 CreateAsyncThunk 函数
- javascript - 如何在构造函数中访问 JSON 对象?
- javascript - 如何将不同的格式应用于不同的列或单元格 Webdatarocksja
- python - user_id 的 KeyErrorr。除了 KeyError 作为错误:
- gitlab - gitlab-ci 中的“发布”阶段有什么用?
- azure-active-directory - 使用 Azure Ad 身份验证进行 payara 服务器登录
- javascript - 光标视觉效果