【问题标题】:Getting NODE JS to run on specific Port让 NODE JS 在特定端口上运行
【发布时间】:2013-10-08 03:03:38
【问题描述】:

所以我有一个永远执行的应用程序。

forever start -l log.log -e err.log -o out.log -a /[path to node js]

我将它设置为侦听端口 3015,但是当我运行 netstat -a 时,该端口没有被侦听。

我正在使用 NGINX 将所有 80/443 请求转发到 127.0.0.1:3015,但它给出了 502 Bad Gateway 错误,因为它无法传递到端口 3015。

我不确定如何让这个应用在 3015 上收听!!!

编辑:这是 js 应用程序中的内容

program
  .version(version)
  .option('-p, --port <port>', 'Port to run on', 3015)

https.createServer(ssl, app).listen(app.get('port'), function(){
  console.log('Express server listening on port %s in %s mode', app.get('port'), app.get('env'));
});

编辑:这是错误日志中的内容:

error: Forever detected script exited with code: 1
error: Forever restarting script for 1 time

【问题讨论】:

  • 您确定node 正在执行您的脚本吗?你确定它执行了.listen(3015) 来真正坐下来听交流吗? err.logout.log 中的任何内容会提示问题?
  • 您必须发布代码 sn-p 否则我们无法帮助您。当你说“让它听”时,这是什么意思?要让节点脚本侦听端口,您需要编写代码以在该端口上启动服务器。
  • 添加了代码 sn-p。澄清一下 - 为什么节点 js 应用程序不打开端口 3015 来监听?这是我唯一看到的:错误:永远检测到脚本退出,代码:1
  • 嗯,你的日志里说了什么?
  • 如果这是您的所有应用程序,那么程序、应用程序和 ssl 来自哪里?不永远启动它是否有效?

标签: node.js nginx forever


【解决方案1】:

您应该检查“侦听”回调函数中的错误。像这样的:

https.createServer(ssl, app).listen(app.get('port'), function(err){
  if (err) {
    console.log(err);
    return;
  }
  console.log('Express server listening on port %s in %s mode', app.get('port'), app.get('env'));
});

如果发生错误,请告诉我们。

【讨论】:

    猜你喜欢
    • 2023-01-19
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-05
    • 1970-01-01
    • 2019-08-21
    相关资源
    最近更新 更多