Say*_*yan 5 javascript mongodb node.js express nestjs
这是 users.service.ts 中的 addUser 方法 -
// post a single user
async addUser(createUserDTO: CreateUserDTO): Promise<User> {
const newUser = await this.userModel(createUserDTO);
return newUser.save();
}
Run Code Online (Sandbox Code Playgroud)
这是 users.controller.ts 中的 POST 控制器方法 -
// add a user
@Post('/create')
async addUser(@Res() res, @Body() createUserDTO: CreateUserDTO) {
const user = await this.usersService.addUser(createUserDTO);
return res.status(HttpStatus.OK).json({
message: "User has been created successfully",
user
})
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用 mongo 集合 findOne 方法,并获取用户详细信息(如果它已存在于 mongo 中),但无法理解如何在存在时引发异常以及在不存在时将其以嵌套 js 样式添加到 mongodb 中 -
const user = await this.userModel.findOne({ userName: createUserDTO.userName });
Run Code Online (Sandbox Code Playgroud)
我将不胜感激的帮助:)
注意: nest js完全是新手
您可以修改 user.service.ts 文件,以便它可以包含一个单独的方法来检查用户是否存在。
async doesUserExists(createUserDTO: CreateUserDTO): any {
const user = await this.userModel.findOne({ userName: createUserDTO.userName });
if(user.length != 0){
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
在您的 user.controller 文件中,您可以调用用户服务中的用户存在函数来检查,然后进行相应操作
// add a user
@Post('/create')
async addUser(@Res() res, @Body() createUserDTO: CreateUserDTO) {
if(await this.userService.doesUserExists()){
return res.status(HttpStatus.OK).json({
message: "User already exists"
})
}
const user = await this.usersService.addUser(createUserDTO);
return res.status(HttpStatus.OK).json({
message: "User has been created successfully",
user
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7982 次 |
| 最近记录: |