node.js - node端口占用要怎么处理?
巴扎黑
巴扎黑 2017-04-17 14:53:58
0
6
778

node端口占用要怎么处理

巴扎黑
巴扎黑

全員に返信(6)
大家讲道理

在www里面改一下监听端口就好。

いいねを押す +0
迷茫

如果能换端口,找到你项目中config.js 看到那个port了吗?改后面的值就行。
如果不能换端口的话。。

图是在windows下的,那就按windows的方法了:

netstat –ano|findstr "8080"

找到对应进程的PID,然后:

taskkill -PID <进程号> -F

或者进任务管理器,找到对应PID的进程,结束之。

いいねを押す +0
阿神

这种情况,十有八九是你的这个程序已经启动或者你的另一个node文件正在监听这个端口。只需要将那个程序应用ctrl+c掉。

いいねを押す +0
刘奇

杀掉进程,或者启动更换端口

いいねを押す +0
阿神

https://segmentfault.com/a/11...

Node 中实现端口被占用了,使用另外一个端口

为了解决 ssr 工具 起多个服务的时候端口被占用的情况。分享研究的代码片段。

// 检测port是否被占用
function probe(port, callback) {

    var server = net.createServer().listen(port)

    var calledOnce = false

    var timeoutRef = setTimeout(function () {
        calledOnce = true
        callback(false,port)
    }, 2000)

    timeoutRef.unref()

    var connected = false

    server.on('listening', function() {
        clearTimeout(timeoutRef)

        if (server)
            server.close()

        if (!calledOnce) {
            calledOnce = true
            callback(true,port)
        }
    })

    server.on('error', function(err) {
        clearTimeout(timeoutRef)

        var result = true
        if (err.code === 'EADDRINUSE')
            result = false

        if (!calledOnce) {
            calledOnce = true
            callback(result,port)
        }
    })
}

使用例子:

function server(_port){
    var pt = _port || __port;
    probe(pt,function(bl,_pt){
        // 端口被占用 bl 返回false
        // _pt:传入的端口号
        if(bl === true){
            // ssr(_pt)
            server = http.createServer(connListener);
            server = server.listen(parseInt(_pt, 10));
            console.log("\n  Static file server running at" + "\n\n=> http://localhost:" + _pt + '\n');
        }else{
            server(_pt+1)
        }
    })
}
いいねを押す +0
Ty80

第一步:运行lsof -i:端口号。通过这个命令你可以看到占用端口号的进程ID。
第二步:kill 进程ID即可。

X,你是windows啊。。。当我没说。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!