如何捕捉从ts抛出的异常?

时间:2016-10-26 06:03:02

标签: node.js typescript

所以我在typescript中编写了一个函数,如下所示:

userUtils.ts

export async function update(id:string, userDetails:Object) {

    return await User.findOneAndUpdate({_id: id}, userDetails, (err, response) => {
        if (err) {
            console.log('Error : ', err);
            throw new Error ("error in your request");
        }

    });   
}

在nodejs的控制器文件中,我调用该函数来更新用户集合,如下所示:

 try {
    userUtils.update(id, userDetails).then(function (err, answer) {
      res.status(200).json(answer);
    }).catch(function (e) {
      log.error('User update error : ', e);
      errors.handleError(res, {"error": "error in your request"});
    });
  } catch (e){
      log.error('error : ', e);

  }  

现在的问题是,我发送了不存在的userId。 Mongo返回强制转换错误,在ts中我抛出异常。我的nodejs控制器中的函数没有捕获异常。如何编写这样以便捕获异常并且前端应用程序得到正确的响应?

任何catch都没有捕获抛出的错误,并返回到行res.json();在哪里记录错误并回答两者是未定义的。

0 个答案:

没有答案