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

如何解析nomData数组并与userEmail组合为对象,现有代码运行异常

问题排查

你的代码存在以下几个核心错误:

  • Sequelize的bulkCreate方法要求传入对象数组,你当前的写法既没有生成符合格式的数组,也没有给方法传入正确的参数
  • 你定义的map回调没有返回值,执行后得到的newArray全是undefined,而且循环过程中一直在覆盖同一个formData对象的属性,完全拿不到多组提名数据
  • 代码中var data = ... 这一行用到的email、name、team、reason都是未声明的变量,运行会直接报错
  • 原有逻辑只判断了历史提名数量≤3就放行,没有算上本次提交的提名数量,会导致超量提交的问题

修正后代码

app.post('/service/nominateperson', async (req, res) => {
    try {
        const userEmail = req.body.userEmail;
        const nomData = req.body.nomRegister;
        // 直接用map生成符合bulkCreate要求的对象数组
        const nominationList = nomData.map(item => ({
            useremail: userEmail,
            nomineeemail: item.email,
            nomineename: item.name,
            nomineeteam: item.team,
            reason: item.reason
        }));
        // 查询当前用户已有的提名数量
        const numberOfNominations = await NominationModel.count({where: {useremail: userEmail}});
        // 校验总数量:已有提名数+本次提交提名数不能超过3
        if (numberOfNominations + nominationList.length <= 3) {
            await NominationModel.bulkCreate(nominationList);
            res.status(200).json({message: "Nomination submitted successfully !"});
        } else {
            res.status(202).json({message: "Nomination limit exceeded, please try next week !"});
        }

    } catch (e) {
        res.status(500).json({fail: e.message});
    }
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 20:12:03