【发布时间】:2022-07-20 00:50:01
【问题描述】:
我正在制作我的 nodeJs 应用程序,我意识到我的控制器有点乱,所以我尝试通过创建各种函数来分解逻辑,但是当我看到结果时,我觉得我的代码有问题? ??????我的意思是,可以在另一个异步函数中使用异步函数,还是按照我使用它们的方式使用异步函数。任何人都可以进行一些代码审查,我将不胜感激。
从“快递”进口{请求,响应}; 从“bcrypt”导入 bcrypt 从“../../models/Role.js”导入角色; 从“../../models/User.js”导入用户; 导出默认类 UserControler { public async createUser(req: Request, res: Response): Promise{ 尝试 { 异步函数getHashedPassword(密码:任意):承诺{ 常量盐:字符串 = 等待 bcrypt.genSalt(10); const hashedPassword: string = await bcrypt.hash(password, salt); 返回散列密码 }; 异步函数 getDefaultRoleId(): Promise { const [roleData, createdRole] = await Role.findOrCreate({ 在哪里: { 名称:'用户', }, 默认值:{ 名称:'用户' } }); const roleId: string = roleData.getDataValue('_id'); 返回角色 ID }; 异步函数 emailExists(email: string): Promise { const user = await User.findOne({ 在哪里: { 电子邮件:电子邮件, } }); 如果(用户){ 返回真 } 否则 {返回 false;} }; const _emailExists: boolean = await emailExists(req.body.email) if(_emailExists) return res.status(400).json({exists: true}); 等待用户创建({ 角色:等待 getDefaultRoleId(), 电子邮件:req.body.email, 隐藏:假, 密码:await getHashedPassword(req.body.password) }).then((数据) => { res.json({数据:数据}); }) } 捕捉(错误:任何){ res.status(400).json({error: err}); } } }【问题讨论】:
标签: node.js typescript