前后台交互问题?

小木
  • 296

以下简单模拟查找用户场景,
后台接口:

..
try{
  const doc=await users.findOne({..})
  if(doc) res.send({message:'ok'})
  else res.status(404).send({message:'not found'}) //fetch catch it
}catch(e){
 return next(e)
 }
 ..

前台请求:

try{
const res=await Fetch({..})
//这里需不需要判断
if(res.message==='ok') Toast('success') 
else Toast('wrong')
}catch(e){
 console.log(e)
 }

需不需要再去判断res.message,看到很多次其他人代码会像上面写,所有的错误都被catch到了,是否可以这样,不去判断:

try{
 await Fetch({..})
 Toast('success') 
}catch(e){
 console.log(e)
 }
回复
阅读 1.5k
1 个回答
zixiCat
  • 973
✓ 已被采纳

没必要判断,一般我们都会统一封装request请求,根据后端返回的状态码(可以是内部自定义的)比如 200 来判断来请求成功(resolve)/(reject)失败之后执行的业务逻辑。
res.message 其实也是后端自定义的,一般用于提示为佳,比如:

{ res.message : '操作成功' }
{ res.message : '充值成功' }

当然以上都只是一般情况,规范还得靠个人

宣传栏