首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点JS检测是否存在命名管道

问节点JS检测是否存在命名管道
EN

Stack Overflow用户
提问于 2016-10-18 20:58:40
回答 2查看 2K关注 0票数 0

我试图在我的应用程序中使用命名管道。问题是,当我试图在服务器运行之前连接到命名管道时,我会得到以下错误:

代码语言:javascript
复制
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中并不能防止错误发生。

这是我的代码:

代码语言:javascript
复制
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));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-20 17:38:24

使用domain模块可以防止致命错误。以下代码可用于安全运行连接代码。

不是我所期望的,而是封闭的解决方案,因为没有答案。

代码语言:javascript
复制
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));
});
票数 0
EN

Stack Overflow用户

发布于 2017-10-31 20:39:34

创建套接字,然后侦听一个error事件,然后调用connect,它将不会被抛出:1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40117966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档