这样写算代码冗余吗?

来源:5-16 单元测试-增加删除用的API

王鹳厶

2019-12-31

双越老师好, 我这样写算代码冗余吗?

下面代码的文件所在路径: src/controller/user.js
/**
 * @author wgm
 * @date 2019/12/31 10:06
 * @description 删除当前登录用户(只在测试环境下有效)
 * @param {String} userName 用户名
 */
const deleteCurUser = async (userName) => {
	if (notTest) return new ErrorMode(deleteUserFailInfo) //只能在测试环境下删除用户(notTest算业务逻辑判断, 学生认为应写在controller层)
	//下面这句已经在/api/user/login接口判断过了, 还要不要再判断一下, 防止黑客跳过login接口和test环境??
	const userInfo = await getUserInfo(userName); //中间件checkLogin只是判断redis. getUserInfo是判断数据库mysql.
	if (!userInfo) return new ErrorMode(registerUserNameNotExistInfo) //用户名未存在
	//因为之前老师在增加用户的时候也写了try-catch, 学生认为除查询外的增改删操作数据库都容易意外报错
	try {
		const result = await deleteUser(userName)
		if (result) return new SuccessModel() //删除已登录用户成功
		return new ErrorMode(deleteUserFailInfo) //删除已登录用户失败
	} catch (e) {
		console.error(e)
		return new ErrorMode(deleteUserFailInfo) //当删除用户过程中,出现错误的时候
	}
}
写回答

1回答

双越

2019-12-31

没看懂,你觉得哪里有冗余?我觉得为啥问题呀。

0
1
王鹳厶
//下面这两句是不是此一举? 因为/api/user/delete接口已经有一个中间件(checkLogin)检查了. 说明用户已经存在了. 还要多此一举写这句再检查一边吗? const userInfo = await getUserInfo(userName); //checkLogin 检查 redis, getUserInfo 检查 mysql if (!userInfo) return new ErrorMode(registerUserNameNotExistInfo) //用户名未存在
2019-12-31
共1条回复

Node.js+Koa2框架生态实战 - 从零模拟新浪微博

用 Koa2 做真正的实战项目,不再只是增删改查的小白工程师

964 学习 · 388 问题

查看课程