Tag: error handling

RethinkDB抛出错误,而不是在callback中返回它们

Nodejs的情况: r.db('users').get('e@mai.l').without(['password']).run() 如果用户不存在rethinkdb将会抛出一个错误 — 2014-01-22T13:26:04.720Z [20163] [ ctx error ] — RqlRuntimeError: Cannot perform without on a non-object non-sequence `null`. in: r.table('users').get('e@mai.l').without(['password']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 问题: 为什么Rethink会抛出错误而不是在callback的第一个参数中返回? 为什么它会抛出错误呢? 不能它只是最后返回null,完成请求?

处理javascript中两层之间的错误

我有一个node.js应用程序使用快递和3层(控制器,API和模型)。 控制器要求API层发布,编辑或添加对象(承诺样式)。 APIvalidation并执行请求(使用模型层(mongoose))。 控制器必须通过渲染错误页面或闪光消息来告诉客户他的请求是否被接受。 这是一个显示主要结构的小图表。 这是一个例子: Controller: exports.doEdit = function(req, res) { var args; args = req.body; return app.api.mods.edit(req.getUserId(), req.params.id, args.name, args.value).then(function(status) { return res.send(200, "Saved!"); }).fail(function(err) { return res.send(400, err.message); }); }; API Layer: /* Edit a mod @param userid the current logged user id @param slug the slug of the mod @param field […]

Node.js教程,Http服务器处理错误

我正在关注learnyounode上的“HTTP客户端”部分的node.js教程。 作为解决scheme提出的代码是: var http = require('http') http.get(process.argv[2], function (response) { response.setEncoding('utf8') response.on('data', console.log) response.on('error', console.error) }) 但是用节点执行这个给了我 events.js:72 throw er; // Unhandled 'error' event 我的工作解决scheme是这样的: var http = require('http') http.get(process.argv[2], function (response) { response.setEncoding('utf8'); response.on('data', console.log); }).on('error', console.error); 这意味着对象响应不是一个http.ClientRequest?

如何在浏览器中抑制javascript错误?

我手上有一个棘手的小问题,可能会把我的工作放到最后一个星期。 我试图从url中取消一个网页,并显示在我的浏览器中,除了javascript的网页。 我的抓取发生在nodejs我的程序stream程是: 从url获取HTML页面到我的服务器。 使用htmlparser2获取所有的CSS和图像链接(不是JavaScript链接) parsingCSS来检查任何外部链接(例如图片URL,CSS导入链接等) 下载这些新的资源,并重复步骤3和4,直到所有资源下载。 从HTML页面中删除所有脚本标记(我使用简单的string操作来完成)。 添加我自己的单个脚本标记,链接到我使用Google Closure编译的JavaScript(它使用canvas添加了一种复杂的dynamic重叠)到HTML。 在浏览器中打开下载的HTML的URL,从我的服务器提供页面。 该页面在浏览器中打开,但是从我的服务器提供,我的JavaScript运行,并显示最终结果。 但是我在第八步遇到了一个问题。 我已经从HTML页面中删除了所有脚本标签,但是有些页面使用onload , onclick等属性从HTML本身调用javascript函数。 例如: <body onload="xxx()">….</body> 这样的页面会引发一个Uncaught ReferenceError: xxx is not defined在我的浏览器中Uncaught ReferenceError: xxx is not defined 。 某些浏览器(如Google Chrome)在控制台中logging此错误,但不会停止执行,所以我的JavaScript运行没有任何问题。 但是某些浏览器,如Firefox,Opera和IE(我相信会有更多的)停止执行并进入debugging模式,我的JavaScript永远不会运行。 我想从我的服务器上的HTML删除所有这些属性,但后来我发现了所有这些属性的列表,并决定反对它的性能的原因,因为它的一长串(我仍然打开它,如果我能find一个有效的方式做这个)。 我正在寻找一种方法来处理可能出现在我的HTML由于undefined references ,然后压制他们的所有JavaScript错误。 我可以捕捉错误使用: window.onerror = function(msg, url, line, col, error) { alert(msg); } 但是,我可以做一些事情,当Uncaught ReferenceError错误发生时不打破执行stream程? 基本上,有没有办法在JavaScript中捕捉和处理ReferenceError ? 感谢提前!

错误:无法在node.js中find模块

首先,这不是重复的。 我search了许多问题,但没有find答案,专门安装pagedown。 这是我的第一个模块。 我以pipe理员身份运行Node.js命令提示符,并运行此命令。 > var pagedown = require("pagedown"); 这里是错误日志: Error: Cannot find module 'pagedown' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at repl:1:16 at REPLServer.self.eval (repl.js:110:21) at repl.js:249:20 at REPLServer.self.eval (repl.js:122:7) at Interface.<anonymous> (repl.js:239:12) at Interface.emit (events.js:95:17) 我正在使用Windows。 工作目录:AppData \ Roaming \ npm \ < – 空文件夹

承诺承诺太多的错误?

我在文档中写下这种风格的承诺: Q.fcall(promisedStep1) .then(promisedStep2) .then(promisedStep3) .then(promisedStep4) .then(function (value4) { // Do something with value4 }) .catch(function (error) { // Handle any error from all above steps }) .done(); catch子句将会发现包括拼写错误在内的任何错误。 但是,根据nodejs dos: 由于JavaScript在JavaScript中的工作原理,几乎没有任何方法可以安全地“捡起你离开的地方”,而不会泄漏引用或创build其他某种不明确的状态。 应对抛出的错误的最安全的方法是closures该过程。 如果我们在callback风格中编写代码,而不是承诺风格,则会抛出一些types的错误 这真让我困惑。 在诺言书写时,我应该如何避免泄漏的引用。 谢谢〜

如何从node-webworker-threads中获得控制台的错误?

我正在开发一个node.js应用程序。 我正在使用webworker-threads包去掉一些CPU阻塞任务。 但是,我的线程代码中未被捕获的错误不会被发送到控制台。 相反,线程只是失败的默默。 最简单的例子说明了这一点: var Threads = require('webworker-threads'); this.testThread = new Threads.Worker( function() { console.log("This is the test thread. The next line should throw an error."); undefinedFunction(); } ); 由于我的实际应用程序正在调用一个单独的js文件作为线程,我也没有看到任何语法错误报告。 是否有一些无证的错误事件我应该赶上? 我的环境可能有问题吗?

Express 4 / Node JS – 非常好地pipe理uncaughtException

我尽我所能确保我的代码中没有错误,但是偶尔会有一个未捕获的exception来杀死我的应用程序。 我可以用它做,而不是杀死应用程序,而是将其输出到某个文件,然后尝试从应用程序停止的位置恢复 – 或者静静地重新启动,并向应用程序中的所有用户显示出错信息,给它一秒钟,而它自行sorting。 如果应用程序没有运行,它会很好,如果它可以redirect到某个地方,说“该应用程序没有运行,取得联系,让我知道”或类似的东西。 我可以使用process.on('uncaughtException')… – 但这是正确的事情吗? 非常感谢您花时间阅读本文,感谢您对此事的帮助和想法。

nodejs中的yEnc的error handling

我正在使用带有Node的yEnc模块。 我一直在试图找出如何执行error handling,因为模块没有一个err的标记。 我将如何执行error handling? 我有的代码如下: exports.emailSNSclient = SNSClient(function(err, message) { var payload = JSON.parse(yEnc.decode(message.Message)); logger.info(payload); 我不确定try catch是否会起作用,因为我已经被认为不能和node一起工作。 什么是正确的方法来做到这一点? 谢谢

拒绝承诺没有达到捕获

我试图使用这种方法非顺序诺言输出。 express .json调用成功地从API发送了一个201到用户对象,但是在控制台中,我得到如下所示的未处理拒绝错误。 这似乎应该被控制器中的.catch处理程序捕获。 我想知道为什么会发生这种情况? UserController的 module.exports.postUser = function (req, res, next) { var user = req.body.user; var ip = req.ip; userService.createUser(user, ip) .then(function (user) { res.status(201).json({"user": user.toJSON()}); }) .catch(function (err) { return next(err); }); }; userService module.exports.createUser = function (user, ip) { var user = new Promise(function (resolve, reject) { return resolve(User.forge(user)); }); return […]