如果钩子使用域,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 its `initialize()` callback, or else set `sails.config.plugins._hookTimeout to a higher value (currently 20000)] code: 'E_HOOK_TIMEOUT' } 

这是我的钩子代码:

 module.exports = function (sails) { return { initialize : function (next) { var scope = this; sails.after(["hook:services:loaded", "hook:orm:loaded"], function () { scope.loadPlugins(next); }); }, loadPlugins : function (next) { var fs = require("fs"); var path = require("path"); fs.readdir("plugins", function (err, list) { var domain = require('domain').create(); domain.on('error', function (err) { // handle the error safely sails.log.error(err); sails.log.error(pluginname); }); for (var i = 0; i < list.length; i++) { var pluginname = list[i]; var plugin = require(__dirname + "/../../plugins/" + pluginname + "/" + pluginname + ".js"); sails.services.pluginservice[pluginname] = plugin; domain.run(function () { if (plugin.init) { plugin.init(function (err) { if (err) { sails.log.error(err); } }); } }); } if (next) { next(); } }); } } } 

我在下一个方法上放了一个断点,并且调用的是正确的。 但是帆没有看到它,并超时。 我使用node.js v0.12.2和风帆v0.11.0