You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简化判断admin/power非空时返回数据的JS代码?

简化代码逻辑方案

首先你的原有代码存在逻辑缺陷:当mreq.admin为null时会直接return,导致后续对power字段的判断完全无法执行,没法实现"admin或power不为null时返回对应数据"的需求。

下面是修正并简化后的代码:

const mreq = await Model.findOne({
  where: {
    id: req.params.id,
    old: req.params.times
  }
});

if (!mreq) return;

// 优先返回admin字段(如果不为null)
if (mreq.admin !== null) {
  return res.json(mreq.admin);
}

// admin为null时,检查power字段
if (mreq.power !== null) {
  return res.json(mreq.power);
}

// 两个字段都为null时直接返回
return;

逻辑说明

  • 先判断查询结果mreq是否存在,不存在直接返回
  • 先检查admin字段,只要不为null就返回该字段数据
  • 若admin为null,再检查power字段,不为null则返回该字段数据
  • 两个字段都为null时,直接返回不响应数据

如果你希望只要其中一个字段不为null就返回,不区分优先级(比如同时保留两个非null字段返回),可以改成以下版本:

const mreq = await Model.findOne({
  where: {
    id: req.params.id,
    old: req.params.times
  }
});

if (!mreq) return;

const responseData = {};
if (mreq.admin !== null) {
  responseData.admin = mreq.admin;
}
if (mreq.power !== null) {
  responseData.power = mreq.power;
}

// 存在非null字段则返回对应数据,否则不返回
if (Object.keys(responseData).length > 0) {
  res.json(responseData);
}

内容的提问来源于stack exchange,提问作者user21177168

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:40:35