定义对象后,Nodejs尝试/捕获块停止执行

时间:2018-06-30 09:13:29

标签: javascript node.js try-catch

我有一个try / catch块,它使用关键字await处理异步任务。一切正常,除了我的try块在定义新对象后停止执行/抛出空错误的事实。

记录该组的日志语句是我得到的最后一条日志。

 // Try to find group
  try {
    let group = await Group.findById(req.params.groupId);

    if (!group) {
      res.status(404).send('Group not found.');
      return;
    }

    if (group.teacher != teacher.id) {
      res.status(401).send('You are not the teacher of this group');
      return;
    }
    console.log('Reached here');
    console.log(group);
    // Create News
    var newNews = {
      title: req.body.title,
      description: req.body.description,
      group: group.id,
      _id: mongoose.Types.ObjectId()
    };

    console.log(newNews);
    console.log('trying to save');
    group.news.push(newNews);
    console.log('pushed');
    // Save
    try {
      let newGroup = await group.save();
      return res.status(200).send(savedGroup);
    } catch (err) {
      return res.status(500).send(err);
    }
  } catch (err) {
    return res.status(500).send(err);
  }

1 个答案:

答案 0 :(得分:0)

我的猜测是您的代码在创建对象时崩溃。 该对象的值之一可能导致异常。

我建议您在catch块中添加一些日志记录。