所以我的問題是,我如何檢查運行時是否沒有結果this.userService.findOne(createUserDto.username);
控制器:
import { Get, Controller, Body, Post, Param } from "@nestjs/common";
import { RegisterService } from "./register.service";
import * as bcrypt from "bcrypt";
import { CreateUserDto } from "./create-user.dto";
@Controller("register")
export class RegisterController {
constructor(private userService: RegisterService) {}
@Post()
create(@Body() createUserDto: CreateUserDto) {
let chkUname: any = this.userService.findOne(createUserDto.username);
let response = {
usernError: "",
regOk: true,
};
if (!chkUname) {
// this.userService.createUser(createUserDto);
return chkUname;
} else {
// response.usernError = "Sorry, this username is used!";
// response.regOk = false;
return true;
}
}
// create(@Param("uname") uname: any) {
// return this.userService.findOne(uname);
// }
}
服務:
import { Injectable, NotFoundException } from "@nestjs/common";
import { InjectModel } from "@nestjs/mongoose";
import { Model } from "mongoose";
import { CreateUserDto } from "./create-user.dto";
import { Users, UsersDocument } from "./schema/user.schema";
@Injectable()
export class RegisterService {
constructor(
@InjectModel(Users.name) private readonly usersModel: Model<UsersDocument>
) {}
async createUser(createUserDto: CreateUserDto): Promise<UsersDocument> {
const user = new this.usersModel(createUserDto);
return user.save();
}
async findOne(uname: string) {
return this.usersModel.find({uname}).exec();
}
}
它總是回傳真/假取決于我寫的代碼。
uj5u.com熱心網友回復:
好的 - 我想我發現了幾個問題。
- 用戶查詢似乎不正確:
async findOne(uname: string) {
return this.usersModel.find({uname}).exec();
}
您沒有包含您的架構,但請確保您正在查詢的欄位實際上是uname(不是username等)。此外,find如果沒有結果,您正在使用 which 將回傳一個空陣列。您應該findOne在查詢中使用
async findOne(uname: string) {
// double check that `uname` is the field on your model
return this.usersModel.findOne({uname: uname}).exec();
}
第二個問題是在控制器中 - 您不需要等待查詢結果:
let chkUname: any = this.userService.findOne(createUserDto.username);
嘗試
let chkUname = await this.userService.findOne(createUserDto.username)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/529632.html
上一篇:如何在Cypher/Neo4J中查詢活動資料庫名稱?
下一篇:使用熊貓根據文本條件向列添加字符
