显式绑定

有时,正在使用的域(domain)不是应该被用于一个特定的事件触发器的其中之一。或者,该事件触发器可能已在一个域的上下文中创建,但应该代替绑定到一些其他的域上。

例如,可能有一个正在被 HTTP 服务器使用的域,但也许我们想为每个请求使用一个单独的域。

这可以通过显式绑定实现。

例如:

// create a top-level domain for the server
const domain = require('domain');
const http = require('http');
const serverDomain = domain.create();

serverDomain.run(() => {
    // server is created in the scope of serverDomain
    http.createServer((req, res) => {
        // req and res are also created in the scope of serverDomain
        // however, we'd prefer to have a separate domain for each request.
        // create it first thing, and add req and res to it.
        var reqd = domain.create();
        reqd.add(req);
        reqd.add(res);
        reqd.on('error', (er) => {
            console.error('Error', er, req.url);
            try {
                res.writeHead(500);
                res.end('Error occurred, sorry.');
            } catch (er) {
                console.error('Error sending 500', er, req.url);
            }
        });
    }).listen(1337);
});

results matching ""

    No results matching ""