Tag: error handling

Express.js中的自定义error handling

本指南build议通过以下代码自定义处理Express.js中的错误: app.use(function(err, req, res, next) { // Do logging and user-friendly error message display console.error(err); res.status(500).send({status:500, message: 'internal error', type:'internal'}); }) 它没有按预期工作:它始终启动相同的“无法GET”错误,而不是自定义的错误。 如何处理404和其他types的错误与Express?

在nodejs中使用try catch是很好的

我只想知道在nodejs中使用try catch是否好。 例如,我正在使用节点js的encryption模块进行encryption和解密。 所以我正在处理任何错误,而encryption/解密在尝试赶上是一个很好的做法?????

无法捕获并logging来自axios请求的错误响应

我在我的应用程序中有一个axios请求,为此我遵循axios npm文档。 这是我的axios请求 axios.post(helper.getLoginApi(), data) .then((response) => { console.log(response); this.props.history.push(from.pathname) }) .catch((error)=> { console.log(error); }) 我能够成功地在成功的请求上logging数据。 然而,当我故意产生一个错误,并尝试console.log它,我没有得到logging的结果,而我只是看到 POST http:// localhost:3000 / login 401(Unauthorized):3000 / login:1 错误:请求失败,状态码为401 login.js:66 在createError(createError.js:16) 在定居(定居点:18) 在XMLHttpRequest.handleLoad(xhr.js:77) 但是,当我在Chrome控制台中转到“networking”标签时,我可以看到下面的回复。 提前感谢您的帮助。

在node.js中处理错误

在node.js中,asynchronous函数有callback函数,但是只有一些函数有errparameter passing给函数。 例如fs.writeFile有错误的参数 fs.writeFile('message.txt', 'Hello Node', function (err) { if (err) throw err; console.log('It\'s saved!'); }); 但fs.watchfile不 fs.watchFile('message.text', function (curr, prev) { console.log('the current mtime is: ' + curr.mtime); console.log('the previous mtime was: ' + prev.mtime); }); 第一个问题是为什么一些asynchronous函数在callback中有错误的参数,有些不是? 我们应该如何处理那些没有的错误呢? 另外,就同步函数而言,它们是否都发出了我们可以订阅的“错误”事件,并以这种方式处理错误? var rs = fs.createReadStream("C:\\Temp\\movie.mp4"); rs.on('error', function(err) { console.log('!error: ', err); }); 和最后一个问题:大多数同步函数名称同步…为什么createReadStream不? 谢谢!

是否有可能修改错误的构造函数,以便它包含错误被引发的上下文?

叫我疯了,但我想要所有的JavaScript错误揭露了这种情况,当他们被抛出。 很难用英文解释,更容易解释我想要的代码: var Person = function() { this.name = 'Chuck'; } Person.prototype.speak = function() { throw new Error('muted!'); console.log('My name is', this.name); } var person = new Person(); try { person.speak(); } catch(error) { console.log(error.context.name, 'could not speak.'); } 是否有可能自动填充error.context属性,使上面的代码将工作? 我打开任何疯狂的技巧,并使用下一个版本的JavaScript或node.js。 编辑:我想这样做,而不使用自定义错误。 这样我可以捕获任何非自定义错误,仍然可以访问context 。

如何捕捉一个nodejs连接静态404错误?

我使用nodeJS和senchalab的连接中间件(不expression!!)。 我需要捕捉静态错误(如404)。 我如何得到这些? 我试图检查源,但我找不到一个方法来传递一个error handling程序connect.static。 这里是我必须使用的一般结构的要点: https://gist.github.com/2397415

JavaScript:Try / Catch vs错误函数作为parameter passing

我想知道哪种方法更适合nodeJS的 JavaScripterror handling和debugging? 有一个纯粹的try / catch块: try { dangerous.function(); } catch(error); { console.log(error); } 要么 只是使用一个函数作为参数,如果发生任何错误将会显示 dangerous.function(function(error) { console.log(error); }); 我提出这个问题,因为我读了try / throw有可能logging太多的堆栈跟踪数据写在这里: http : //nodejs.org/api/domain.html#domain_warning_don_t_ignore_errors

如何确保Node.js在MonogDB连接断开后继续运行?

Express中有一个error handling中间件,它试图捕获所有传入的错误: app.use(function(err, req, res, next){ console.error(err.stack); res.status(500); res.render('500.jade'); }); 但由于某种原因,每当我closuresmongod进程,我的应用程序崩溃与以下堆栈跟踪: Error: failed to connect to [localhost:27017] at null.<anonymous> (/<hidden>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:540:74) at EventEmitter.emit (events.js:106:17) at null.<anonymous> (/<hidden>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:140:15) at EventEmitter.emit (events.js:98:17) at Socket.<anonymous> (/<hidden>/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:478:10) at Socket.EventEmitter.emit (events.js:95:17) at net.js:441:14 at process._tickCallback (node.js:415:13) Process finished with exit code 8 我曾尝试使用以下configuration,但它并没有帮助我: var options = { server:{ auto_reconnect: true, poolSize: […]

NodeJS捕获错误的最佳实践

我刚开始有NodeJS和Express。 来自其他stream行的脚本语言和C ++背景,asynchronous调用数据库函数有点异。 我已经整理出了一个模式,但是我仍然对捕捉exception感到好奇。 以下是我的基本模式。 var callback = function(req, res) { // do stuff connection.query(queryString, function(err,result){ if (err) throw err; // process results. }; }; var express = require('express'); var app = express(); app.get('/', callback); app.listen(3000,function() { console.log('listening'); }; 通常我有很多的端点和callback。 我有点迷路了,我设置了try / catch块来捕获callback中抛出的错误。 我已经四处寻找一些build议,但是它们中的很多似乎都在使用web框架(如果有的话)。

如何处理node.js中的不同错误types

在节点世界中,Error对象作为第一个parameter passing给callback函数。 区分节点中的错误types的正确方法是什么? 使用一些属性(.errorCode或.userNotFound)? 有单独的(错误inheritance)类和使用.constructor / instanceof? 任何其他公约我失踪了?