Tag: error handling

如果钩子使用域,Sails不会启动

我创build了一个Sails.js服务器,可以在挂钩初始化时使用第三方代码。 我想使用域来安全地捕捉错误,但是当发生错误时,错误被正确捕获,但是sails服务器不会以此错误启动: error: Error: The hook `myhook` is taking too long to load. Make sure it is triggering its `initialize()` callback, or else set `sails.config.plugins._hookTimeout to a higher value (currently 20000) at tooLong [as _onTimeout] (/…/node_modules/sails/lib/app/private/loadHooks.js:92:21) at Timer.listOnTimeout (timers.js:110:15) { [Error: The hook `plugins` is taking too long to load. Make sure it is triggering […]

处理meteor客户端的错误

我目前正在使用meteor-collection2而且我的validation系统出现错误。 在“lib”文件夹中,我定义了我的集合,并为其添加了一个SimpleSchema 。 然后,我定义了一个Meteor.method : # define methods Meteor.methods # create RecipeCommentCreate: (options) -> # find recipe recipe = Recipes.findOne(options.recipeId) if !recipe throw new (Meteor.Error)(404, 'Recipe not found') # init comment comment = message: options.message recipe: _id: recipe._id # insert comment RecipeComments.insert(comment) 所以,这个代码在client-side和server-side ,使用延迟补偿(这是完美的,因为collection2可以在双方工作)。 但是,在调用这个方法时(感谢客户端的事件): # call method Meteor.call 'RecipeCommentCreate', options, (error, result) -> if […]

无法处理hystrix模块中的request-promise-json错误

我是节点js的新手,我必须在节点js中为我的项目实现hystrix弹性库,但我坚持一点。 我面临的问题是,每当我从我的服务器应用程序发送错误代码(4xx,5xx),我不能使用诺言来处理它们。 我粘贴我的app.js和server.js文件的代码。尽pipe该项目有其他几个文件,但这些文件是用于启动所有的进程,但唯一的问题是在app.js。 请帮助我如何有效地处理被拒绝的承诺错误,以便我没有得到未定义的res,身体在app.js的 isErrorHandler方法。 我还将添加控制台数据。 app.js var express = require('express'), Promise = require('q'), request = require('request'), getRandomInt = require('./random_int'), http = require('request-promise-json'), _ = require("lodash"), hystrixStream = require('../../lib/http/HystrixSSEStream'), CommandsFactory = require("../../lib/command/CommandFactory"); var makeRequest = function(options) { var req = _.assign(options); return http.request(req); }; function hystrixStreamResponse(request, response) { response.append('Content-Type', 'text/event-stream;charset=UTF-8'); response.append('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate'); […]

(蓝鸟)中的咕噜声无声错误?

我有一个以main()函数为起点的npm模块。 现在,让我们说我在这个main()抛出一个Error,如下所示: function main() { throw new Error("An error!"); } 然后用node my-app-that-launchers-main.js执行它,然后显然,错误被抛出,我得到一个node my-app-that-launchers-main.js 。 如果我为此写一个咕噜的任务: var mynpm = require("mynpm"); module.exports = function(grunt) { grunt.registerTask("build",function() { mynpm.build(); }); } 并通过Grunt执行它,然后失败。 如预期的那样,错误被抛出,咕噜声失败。 不过,如果我把这个扔在蓝鸟的承诺里面: function main() { Promise.try(function(resolve) { throw new Error("An error!"); } ).catch(function() { console.log("error"); } ).finally(function() { console.log("finally"); }); } 并通过node运行,然后我看到catch函数被调用。 正如所料。 但是,如果我通过Grunt的registertask运行相同的代码,一切都变得沉默。 也不是finally的结果。 什么可能造成这一点。 […]

如何在node.js程序中logging每个“throw”?

我有一个非常大的js代码库,它以node.js脚本运行。 即使被捕获到生产代码中,我也想logging每个exception。 是否有可能实现? 我想通过重新定义它来在Error构造函数中注入一些代码,但是代码的某些部分会抛出自定义错误。 重新定义生产代码中的所有错误types是不可行的,在每个throw语句和/或try-catch块旁边都没有添加日志logging逻辑。 最好的解决办法是以某种方式重新定义抛出关键字 – 这是可能的吗?

节点错误堆栈跟踪未定义

我有一些长时间运行的节点代码,在一段时间后会打印出[RangeError: Maximum call stack size exceeded]错误,并继续无限期地执行。 要追查什么recursion调用导致这(我找不到任何recursion,我没有使用setTimeout或process.nextTick ),我做到了这一点: process.on('uncaughtException', function(error) { console.log(error); console.log(error.stack); }); 这抓住了错误,但stack属性是undefined ! 我试图抛出自己的错误, stack属性显示预期的堆栈。 节点不应该堆栈溢出错误? 我怎样才能确定哪些呼叫造成这种情况?

Mongodb断言28616“寻找期间遇难的亚军”

我正在运行一个NodeJS脚本,连接到我的Mongo Oplog观看增量。 定期地,我得到以下Mongo错误: assertion 28616 Runner killed during find ns:local.oplog.rs query:{ orderby: { $natural: 1 }, $query: { ns: "Foo", ts: { $gt: Timestamp 1467969843000|2841 } } } 我在文档中查了一下,没有find任何东西来指导我如何解决这个问题,并避免不时发现这个错误。 其他人看到这个?

如果用户试图删除没有find的logging,服务器应该返回一个200还是404?

我的同事在我们的API中开发了一个如下所示的约定: … return Subscription.destroy({ where: { id: req.params.id } }).then((count) => { if (count === 0) { Logger.log('warn', '- subscriptionController.delete : no record found') return res.status(404).json(['No record found.']) } Logger.log('info', '- subscriptionController.delete') return res.status(200).end() … 理由是:如果没有findlogging,那么这是一个无效的请求,因为用户试图删除一条logging,但没有发生。 在我看来,即使没有logging被删除,只要提供给控制器的ID是有效的ID,就应该返回200。 什么是正确的实施?

如何在node.js中看到警告和错误消息?

我怎样才能得到节点中的错误报告? 我正在运行v0.6.15(使用简单的osx安装DMG),每当出现错误,说我尝试使用一个未定义的variables,过程只是停下来,没有迹象表明为什么。 我想即时通讯寻找节点版本的PHP的error_reporting(E_ALL); 有什么build议么? == ==编辑 奇怪的…好吧…所以我注意到,我得到的错误只是在我运行的文件,但没有在我需要“ 我正在运行的文件只有这个代码 process.on('uncaughtException', function(err) { console.log(err); }); var ImageProcessor = require('./ImageProcessor').ImageProcessor; var imageProcessor = new ImageProcessor(); imageProcessor.imageRequestEnd(); imageProcessor是一个mootools类,如果重要,但不使用其他任何特殊的东西。

节点:async.foreach失败时,错误未捕获exception被抛出

我在async.forEach构造中包装了一些asynchronous执行的“子”函数(来自伟大的lib: https : //github.com/caolan/async ) 当这些子函数之一发生未捕获的exception时,整个节点进程就会挂起。 (因为callback永远不会返回到async.forEach构造,async.forEach仍然认为子function很忙) 不过,我会认为,至less抛出的exception会起泡,因为我没有抓到任何地方。 有没有办法configurationasync.forEach如何处理这些exception? 这是非常困难的编程。