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