Tag: node.js domains

麻烦退出节点域asynchronous

是否有可能asynchronousexit域名? 我的领域的“堆栈”思维模型显然是不够的,因为我预计这个模型会成功: var Domain = require('domain'); var assert = require('assert'); var outerDomain = Domain.create(); outerDomain.name = 'outer'; outerDomain.run(function() { var innerDomain = Domain.create(); innerDomain.name = 'inner'; innerDomain.enter(); setImmediate(function() { assert.strictEqual(process.domain.name, 'inner'); process.domain.exit(); // This assertion is failing because process.domain is undefined! assert.strictEqual(process.domain.name, 'outer'); }); }); 第二个断言失败,因为没有活动域,而我期望“外部”域是活跃的。 我会很感激为什么这个失败的理解。

是否需要处理node.js域名? 什么时候该做?

我有一个快速应用程序,我使用收到每个请求的域名。 我已经添加了一个中间件,以确保任何进一步的中间件在域内“执行”。 app.use(function(req, res, next) { var d = domain.create(); d.req = req; d.add(req); d.add(res); d.run(next); }); 此外,处理请求时执行的一些代码使用process.domain.req来获取对初始请求的引用,它是头文件,cookies等等。我这样做是因为“我不能直接传递req给这个代码。 这个奇怪的代码是一种跨环境的代码(对于浏览器和节点),它不知道它在哪里执行。 在底层,对于Node和浏览器,特别是networking代码,一些基本层的实现是不同的。 对于浏览器来说,它是一个XMLHttpRequest,而NodeJS则是一个基于request库的自定义包装器。 我担心内存泄漏。 该引用存储在域上的req 。 他们可以保留这些东西,让他们不垃圾收集? 另外,我是否需要定期处理域名,还是需要在某些边缘/错误情况下处理这些域名?

节点JS – 日志工作者群集最后一个exception

我正在使用Node JS服务器(0.10.30)以及其集群function。 每次工人终止时,我都会遇到“退出”事件并重新启动一名新工人。 我还想logging(在主集群上)工作者被终止的原因,例如exception或致命错误。 怎么做? 我的app.js文件看起来像这样: var cluster = require('cluster'); var numCPUs = 2; if (cluster.isMaster) { for (var i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', function(worker, code, signal) { console.log('worker %d died. Starting a new worker:', worker.id); cluster.fork(); }); } else { var domain = require('domain'); var d = domain.create(); […]

如何在域中的节点做适当的error handling?

我正在使用第三方库。 哪个节点domain用于error handling。 如果传递给该第三方库的callback函数有任何错误,最终会多次调用我的callback函数。 示例代码是: var startFunction = function (callback) { //Call thirdParty function and wait for response thirdPartyFunction(function (error, data) { console.log("Called with"); console.log(arguments); //Assume there is an error in my callback function setTimeout(function () { dd callback.apply(null); }, 2000); }); } //ThirdParty function don't modify anything here var thirdPartyFunction = function (callback) { […]

无法在适当的时间在域上调用处理

我在domain模块有问题。 目前,我正在尝试捕获请求中引发的任何未被捕获的错误。 使用express中间件和域。 所有的请求都是通过这个函数路由的,然后再调用nextpath。 app.use (req, res, next) -> domain = createDomain() domain.on "error", (err) -> res.send(500) domain.dispose() domain.enter() next() 问题是,如果从不抛出错误,我该如何处理域名呢? 我可以把中间衣以外的领域和活动吊起来,这样我就不用去处理了,但是我不会再有中间衣物,所以我需要发500个衣服。 有没有人有更好的解决scheme,我如何处理这个? 我花了太多的时间试图找出一个办法(和许多hacky的方式)来处理这个问题。 谢谢。

Node.js中的本地和全局模块有什么区别? 何时使用本地和全局模块?

我们可以使用require函数访问本地模块,但不能通过它访问全局模块。 我读了一些地方,使用全局模块,我们需要使其本地,然后通过需求function导入。 所以如果我们不能直接访问全局模块,那么使用它的需求是什么。