On Monday, November 12, 2012 at 3:36 PM, pie_lard wrote:
> Cool - thanks!
>
> This definitely could be better documented. It's a pretty easy trap to fall
> into.
>
> Also, your solution still depends on process.domain which isn't mentioned
> officially (ie. at http://nodejs.org/api/process.html ).
For that, I was just following your lead. I think the intent is that
process.domain is meant to be used by library writers who want to make use of
domains without directly depending on node 0.8+. There's also domain.active,
for code that's built to be domain-aware from the get-go.
However, my assumption is that the typical domain pattern is going to look a
lot more like:
var domain = require('domain');
// setup...
app.get('/thinger/:doer', function (req, res) {
var d = domain.create();
d.on('error', function (error) { /* oh no */ });
d.run(function () {
// do a buncha stuff
db.query("SELECT * FROM foo WHERE ?", params, d.bind(function (err, rows,
cols) {
// handle
});
})
}
or, more succinctly (using domain.intercept, which is documented, but not with
any particularly convincing motivation):
var domain = require('domain');
// setup...
app.get('/thinger/:doer', function (req, res) {
var d = domain.create();
d.on('error', function (error) { /* oh no */ });
d.run(function () {
// do a buncha stuff
db.query("SELECT * FROM foo WHERE ?", params, d.intercept(function (rows,
cols) {
// handle
});
})
}
I gave a little talk on domains last week, and my slides are here:
http://othiym23.github.com/domainion/
It's my first cut at this material and tries to put all this in context, and
might help you figure out what's going on a little better.
F
Forrest L Norvell
Node.js agent engineer
| E [email protected] (mailto:[email protected]) | C (415) 823-6356 | T
@othiym23 (http://twitter.com/othiym23) | G github.com/othiym23
(https://github.com/othiym23) | W newrelic.com (http://newrelic.com/)
( ( *)) New Relic
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en