【发布时间】:2021-08-30 13:34:06
【问题描述】:
我正在使用 mongodb (mongoose) 学习 nestjs,我正在尝试从数据库中获取单个用户。
users.service.ts
@Injectable()
export class UsersService {
constructor(@InjectModel(User.name) private readonly userModel: Model<UserDocument>,) {}
async create(createUserDto: CreateUserDto): Promise<User> {
const createdUser = new this.userModel(createUserDto);
return createdUser.save();
}
async findAll(): Promise<User[]> {
return this.userModel.find().exec();
}
async findByUsername(username: string): Promise<User | undefined> {
return this.userModel.findOne({username})
}
}
users.controller.ts
@UseGuards()
@Controller('/api/users')
export class UsersController {
constructor(private readonly usersService: UsersService) {
}
@Post()
async create(@Body() user: CreateUserDto) {
await this.usersService.create(user);
}
@Get()
async findAll(): Promise<User[]> {
return this.usersService.findAll();
}
@Get(':username')
async findOne(username: string): Promise<User> {
return this.usersService.findByUsername(username);
}
}
users.schema.ts
export type UserDocument = User & Document;
@Schema()
export class User {
@Prop()
firstname: string;
@Prop()
lastname: string;
@Prop({required: true})
username: string;
@Prop({required: true})
password: string;
@Prop({default: false})
isAdmin: boolean;
}
export const UserSchema = SchemaFactory.createForClass(User);
问题是我在导航到 http://localhost:3000/api/users/username 时收到一个空白页 Postman 也没有返回任何东西。
有什么想法吗?
【问题讨论】:
-
你确定用户名返回了什么?您的屏幕截图不足以让我提供帮助