2016-10-18 1 views
0

私のアプリケーションで名前付きパイプを使用しようとしています。私は、サーバーが実行される前に、名前付きパイプに接続しようとする問題は、私は次のエラーを取得されています。パイプは、それに接続しようとする前に存在している場合ノードJS名前付きパイプが存在するかどうかを検出します。

events.js:141 
     throw er; // Unhandled 'error' event 
    ^

Error: connect ENOENT \\?\pipe\\testpipe 
    at Object.exports._errnoException (util.js:870:11) 
    at exports._exceptionWithHostPort (util.js:893:20) 
    at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1062:14) 

はどうすれば確認できますか?

注:try-catchに接続コードをラップしても、エラーを防ぐことはできません。ここで

は私のコードです:domainモジュールを使用して

var net = require('net'); 

var addr = '\\\\?\\pipe\\testpipe'; 
var client = net.createConnection({ path: addr }, function() { 
    console.log("Connected"); 
    client.on('data', function(data) { 
     console.log("Recieved: " + data); 
    }); 
    client.on('error', function(){ 
     console.log(arguments); 
    }); 
}.bind(this)); 

答えて

0

は致命的なエラーを防止します。次のコードを使用して、接続コードを安全に実行できます。

答えが無かったので、私が望んでいたものではなく、閉じた解決策でした。

var net = require('net'); 
var domain = require('domain'); 

var addr = '\\\\?\\pipe\\testpipe'; 

var d = domain.create(); 
d.on('error', function(err) { 
    console.error(err); 
}); 

d.run(function() { 
    var client = net.createConnection({ path: addr }, function() { 
     console.log("Connected"); 
     client.on('data', function(data) { 
      console.log("Recieved: " + data); 
     }); 
     client.on('error', function(){ 
      console.log(arguments); 
     }); 
    }.bind(this)); 
}); 
関連する問題