Tag: error handling

错误:getaddrinfo EAI_AGAIN

我的服务器今天扔了这个,这是我从来没有见过的nodejs错误。 Error: getaddrinfo EAI_AGAIN my-store.myshopify.com:443 at Object.exports._errnoException (util.js:870:11) at errnoException (dns.js:32:15) at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26) 我想知道这是否与今天影响Shopify和许多其他服务的DynDns DDOS攻击有关。 这里有一篇关于这个的文章。 我的主要问题是dns.js做什么? 它的其中一部分是什么? 我可以用不同的域重新创build这个错误吗?

如何使用Express处理Node.js中的错误

我正在与一个项目的合作伙伴合作。 他在Node.js + Express中写了很多代码,但是我们遇到了这个架构的问题。 为了弥补这一点,我的主要任务是找出构buildNode.js + Express应用程序的最佳方法。 我碰到两种情况,处理错误,我想要一些build议。 首先,我如何捕获顶级exception? 我想要的最后一件事是一个bug完全杀死节点进程。 面对任何错误,我想继续为用户服务。 其次,一些错误通过callback传递(我们使用caolan / async )。 作为每个路由处理程序的一部分,我们要呈现一个视图(GET),redirect到另一个path(POST),并且我们要用一个自定义错误消息redirect到一个错误屏幕。 我怎样才能确保在一个地方捕捉这个逻辑?

如何处理ETIMEDOUT错误?

如何处理此通话的etimedout错误? var remotePath = "myremoteurltocopy" var localStream = fs.createWriteStream("myfil");; var out = request({ uri: remotePath }); out.on('response', function (resp) { if (resp.statusCode === 200) { out.pipe(localStream); localStream.on('close', function () { copyconcurenceacces–; console.log('aftercopy'); callback(null, localFile); }); } else callback(new Error("No file found at given url."), null); }) 有办法等待更长的时间? 或再次请求远程文件? 究竟会导致这个错误? 只有超时?

我如何处理承诺的错误?

作为节点程序员。 我习惯于使用“nodebacks”来处理我的代码中的错误: myFn(param, function(err, data) { if (err){ //error handling logic } else { // business logic } }); 在编写这个函数时,我可以这样做: var myFn = function(param, callback){ var calc = doSomeCalculation(param); if(calc === null) { // or some other way to detect error callback(new Error("error with calculation"), null); } … someAsyncOp(calcN,function(err, finalResult){ if(err) return callback(err, null); callback(null, […]

使用Node.js和mongodb处理超时

我目前正在testing一些代码如何站在以下的情况: Node.js应用程序启动并成功build立到mongodb的连接 在成功build立连接之后,mongodb服务器将停止,所有后续请求都会失败 要做到这一点,我已经得到了使用官方驱动程序(在这里find: https : //github.com/mongodb/node-mongodb-native )的代码: MongoClient.connect('mongodb://localhost:27017/testdb', function(err, db) { app.get('/test', function(req, res) { db.collection('users', function (err, collection) { console.log(err); if (err) { // ## POINT 1 ## // Handle the error } else { collection.find({ 'username': username }, { timeout: true }).toArray(function(err, items) { console.log(err); if (err) { // ## POINT 2 […]

如何在JavaScript中链接exception(即像在java中添加原因)

有没有一个标准/最佳做法的方式来添加一个exception的原因在JavaScript中。 在Java中,你可能会这样做: Throwable t = new Exception("whatever"); t.addCause(previouslyCaughtException); throw t; 当打印产生的exception时,它会给你一个很好的跟踪,包括原因。 有没有什么好的方法来做到这一点的JavaScript或我必须推出自己的?

如何捕获像EADDRINUSE的node.js / express服务器错误?

这是我的代码(这是coffeescript和使用的颜色,但这是不相关的) # If this module is executed if !module.parent # Start server try hons_server.listen config.port console.log 'Listening to port ' + config.port catch err console.error "Couldn't start server: #{String(err)}".red hons_server是一个express.js服务器 。 我很难理解为什么由于hons_server.listen()引发的错误没有被try / catch捕获。 当我运行我的服务器两次,我得到的输出: $ coffee src / server.coffee 听港口9090 Node.js的:201 扔e; // process.nextTick错误,或第一次打勾时发生“错误”事件 ^ 错误:听EADDRINUSE 在errnoException(net.js:632:11) 在Array.0(net.js:733:26) 在EventEmitter._tickCallback(node.js:192:40) 我想知道为什么没有捕获抛出的错误,以及如何/在哪里我可以捕获EADDRINUSE错误。

处理node.js中的require()模块引发的错误

在试图require()模块不存在的时候,在我的代码中有一点障碍。 代码循环遍历目录,并在每个文件夹上执行var appname = require('path') 。 这适用于适当configuration的模块,但会引发: Error: Cannot find module循环遇到非Error: Cannot find module时Error: Cannot find module模块。 我希望能够优雅地处理这个错误,而不是让它停止我的整个过程。 所以简而言之,如何捕获由require()抛出的错误? 谢谢!