我有一个控制器,看起来像这样。
export default class AuthController {
static async getRegisterController(
req: Request,
res: Response,
next: NextFunction,
): Promise<Response> {
const vendorData: RegisterInput = {
name: req.body.name,
email: req.body.email,
password: req.body.password,
contactNo: req.body.contactNo,
referralCode: req.body.referralCode,
};
const userWithEmail = await VendorData.getVendorWithEmail(vendorData.email);
if (userWithEmail) {
return next(new ConflictException('User with email already exists'));
}
const hashedPassword = await hashPassword(vendorData.password);
vendorData.password = hashedPassword;
const savedVendor = await VendorData.insertVendor(vendorData);
const successResult = Result.success(savedVendor);
return new ApiResponse(res, successResult).apiSuccess();
}
}
但是,我不能归还
next()
函数的作用是,返回类型与控制器的返回类型冲突。异步函数总是返回
promise
next
类型的函数返回
void
. 但是,我确实需要下一个函数将我的错误传播到全局错误处理中间件以发送适当的响应。
编辑:
我只想在我打电话给
next(err);
. 只是
return;
之后
next(err)
不会像
回报;
回报
Promise<undefined>