NodeJS OpenPort模块没有返回我对2+端口的期望

时间:2015-05-04 22:14:16

标签: javascript node.js npm port

我正在使用NodeJS OpenPort模块并尝试找到两个开放端口:

var op = require('openport');
op.find({
    startingPort: 49152,
    endingPort: 65535,
    count: 2,
    createServer: function(ports, callback) {
        console.log("op_createServer>> " + ports);

    }}, 
    function (err, ports) {
        console.log("op_FoundPorts>> " + ports);
        if(err) { 
            console.log(err); 
            return;
        }
    });

我所期待的是输出类似于:

op_createServer>> 49152 49153

相反它只是

op_createServer>> 49152 

但它只返回一个找到的端口。我知道有一个事实,在49152到65535范围内有多个开放端口。

如何使用此createServer函数确保ports是一个数组或以某种方式从count选项中提取所需的所有端口?

或者,是否有更好的节点模块用于查找开放端口?

1 个答案:

答案 0 :(得分:0)

啊!我想出了答案。您不应该在createServer调用中收集该端口数据。相反,它会进入常规回调。见这里:

op.find({
    startingPort: 49152,
    endingPort: 65535,
    // http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
    count: 2,
    }, 
    function (err, ports) {
        console.log("op_FoundPorts>> " + ports);
        if(err) { 
            console.log(err); 
            return;
        }
    });