javascript - meteor 错误处理

标签 javascript meteor

如何在 Meteor.js 中添加全局异常/错误处理程序。我浏览了这么多代码,但没有人解释全局方法...每个人都只是在每个 Meteor.call 周围进行 try catch 或向其添加异步回调。但我很懒,我只想要一段代码来处理我所有的 Meteor.Errors。大多数情况下,它已经是客户端可读错误。所以我只需要把它展示给他就可以了。

我尝试使用:

$(window).error(function(error) {
  const errorText = T9n.get("Exception." + error.originalEvent.error.error);
  View.toast(errorText);
});

但它只适用于正常的 javascript 错误,不适用于 Metero.Error.. 似乎是 Meteor 在我捕获它之前捕获了它。

最佳答案

我不知道这是否正是您所需要的,但是,这是一个解决方案。

在每个 Meteor.call() 中,都像这样:

Meteor.call('contactForm', arg1, arg2, function(err, res){
    handleError(err, res);
});

在客户端定义可重用的错误处理程序:

handleError = function (err, res){
    if(err){
        //do something with the error sent from server. not the ugly alert() like this code.
        alert('error!')
    } else{
        //do something if no errors.
        alert('done!')
    }
}

当然,您必须在方法中定义错误和结果,但这解决了在客户端一遍又一遍地编写相同内容的问题。您还可以在服务器端定义像上面的handleError 这样的帮助器。例如,我的服务器中有 checkUser() ,如下所示:

checkUser = function (){
    if(!Meteor.user()){
        throw new Meteor.Error(400, 'You are not a unicorn yet! I mean, user.')
    }
}

在方法中我只需编写 checkUser(); 即可使用它。

编辑: 这些全局函数不在任何其他代码块内。只需让它们独立即可

关于javascript - meteor 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38254718/

相关文章:

javascript - 获取星期的时间戳返回 NaN

javascript - 如何在编辑器中显示保存的 Draft-JS 数据? ( react + meteor )

javascript - 意外的 html 闭合标签meteor.js

javascript - 使用 session 变量控制嵌入式 YouTube 播放器时,我收到错误 : Uncaught TypeError: Cannot call method 'postMessage' of null?

javascript - Cloudinary直接上传,带有上传预设和Meteor.js

javascript - 找不到模块 : Can't resolve '@mui/icons-material/FileDownload'

javascript - YouTube iframe API : can't make it responsive

javascript - 为多个div设置随机背景颜色

javascript - 如何获得 2 到 12 rolldie 的总和?

javascript - 在 Meteor App 中查看页面源代码显示包含许多脚本