【问题标题】:Port address still occupied端口地址仍被占用
【发布时间】:2018-08-08 04:10:09
【问题描述】:

我用 chrome 在 localhost 上运行了一个 php 脚本来执行以下 node.js 文件,名为 test2.js:

var express = require("express");
var app = express();
var notams = require("notams");

app.get("/", function(req, resp){
notams(['LMMM', 'LMML'], { format: 'DOMESTIC' }).then(results => {
    resp.end(JSON.stringify(results));
});
});

    app.listen(1000, function (){
    console.log("Listening on Port 1337");
});

使用的php脚本如下:

<?php
echo shell_exec("node test2.js 2>&1");
?>

效果很好。唯一没有显示的是浏览器控制台上的 console.log 消息。 (有什么理由吗?)

我的主要问题是,当我更改脚本以侦听另一个端口时,节点仍在使用先前的端口 (1000),即使在重新启动电脑并关闭浏览器之后也是如此。如何从节点清除端口? P.S.我在 Windows 10 上运行。

【问题讨论】:

  • “唯一没有显示的是浏览器控制台上的 console.log msg。(有什么原因吗?)” - 这永远不会显示在浏览器控制台中, 因为它是在服务器上运行的
  • 那怎么看呢?有没有办法查看服务器上运行的日志?

标签: php node.js port


【解决方案1】:
  1. 在管理模式下打开 cmd。
  2. 打卡netstat -a -b
  3. 查看谁使用您的端口
  4. taskkill /f /im [上一条命令得到的1000端口的pid]

希望对你有帮助。

【讨论】:

  • 谢谢。有效。现在,有没有办法用 php 代码做同样的事情?我希望这个 php 在加载特定页面时在实时网站上运行,从节点提取结果,然后腾出端口。
  • 我认为这个主题在另一篇文章中有所涉及:stackoverflow.com/questions/11209509/…。看看吧。
【解决方案2】:

在 node.js 中,console.log() 将在 cmd 中显示日志,而不是在浏览器中

【讨论】:

    猜你喜欢
    • 2021-12-28
    • 1970-01-01
    • 2012-05-23
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    相关资源
    最近更新 更多