Process.domain在节点0.10中未定义

我正在尝试使用域名,并尝试使用两个Express域中间件软件包:

https://github.com/brianc/node-domain-middleware https://github.com/baryshev/connect-domain

根据第一个使用文档我应该有权访问process.domain但它是未定义的。

我基本上是在我的app.js做这个

 var express = require('express'), domains = require('express-domain-middleware'); var app = exports.app = express(); app.use(domains); 

而在一个控制器中:

 exports.index = function(req, res, next) { console.log(process.domain); //undefined }; 

是什么赋予了?

您可能需要检查(使用console.log或断点),以确保在index方法被调用之前发生这一行:

 express.use(domain); 

我不知道你的app是如何构build的,但app.use顺序通常是这样的。

你的app.get('/someurl', yourcontroller.index)应该在app.use(domain)

好的 – 这是因为我的中间件里有一个Mongo电话。 显然,所有的数据库调用都必须被打包。

 var d = domain.create(); d.run(function () { client.query('...', d.intercept(function (rows) { // ... use rows (note, first arguments error was "intercepted" by the domain) })); }); 

参考: https : //github.com/felixge/node-mysql/issues/308