当前位置: 首页 > 面试题库 >

应用程序无法启动(端口8080)不可用

谭山
2023-03-14
问题内容

我正在尝试将我的node.js应用程序(带有express和mongoose)部署到openshift上,但我无法这样做。该应用程序可以在我的本地环境中完美运行。

我的入口是文件/ bin / www

我将它作为package.json文件中此行的openshift入口点

"main": "bin/www",

我已经确保按照指南使用环境变量设置mongodb连接,如下所示:

// default to a localhost configuration:
var mongoConnectionString = 'mongodb://127.0.0.1/code-blog';

// if OPENSHIFT env variables are present, use the available connection info:
if (process.env.OPENSHIFT_MONGODB_DB_PASSWORD) {
  mongoConnectionString = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" +
  process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" +
  process.env.OPENSHIFT_MONGODB_DB_HOST + ':' +
  process.env.OPENSHIFT_MONGODB_DB_PORT + '/' +
  process.env.OPENSHIFT_APP_NAME;
}

mongoose.connect(mongoConnectionString);

我得到的错误是:

remote: Waiting for application port (8080) become available ...
remote: Application 'codeblog' failed to start (port 8080 not available)
remote: -------------------------
remote: Git Post-Receive Result: failure
remote: Activation status: failure
remote: Activation failed for the following gears:
remote: 558a25bd5973ca7a74000162 (Error activating gear: CLIENT_ERROR: Failed to
 execute: 'control start' for /var/lib/openshift/558a25bd5973ca7a74000162/nodejs

remote: #<IO:0x00000000b49380>
remote: #<IO:0x00000000b49308>
remote: )
remote: Deployment completed with status: failure
remote: postreceive failed
To ssh://558a25bd5973ca7a74000162@codeblog-donaldsubert.rhcloud.com/~/git/codebl
og.git/
   29635a8..7a0e926  master -> master

这对我来说很奇怪,因为我没有在任何地方指定端口8080。实际上,默认端口在此处指定:

var port = normalizePort(process.env.OPENSHIFT_NODEJS_PORT || "3000");
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1";

app.set('port', port);

var server = http.createServer(app);

我不太确定从这里到哪里。我似乎没有足够的信息来确定下一步。

[edit]我添加了一些日志记录以测试该端口在哪个端口上运行,但是该日志记录语句永远不会运行。这是html" target="_blank">代码

console.log("TEST TEST TEST");

var app = require('../app');
var debug = require('debug')('ProjectTemplate:server');
var http = require('http');

var port = normalizePort(process.env.OPENSHIFT_NODEJS_PORT || "3000");
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1";

console.log("PORT: ", port);

和输出

TEST TEST TEST
module.js:340
    throw err;
    ^
Error: Cannot find module './routes/logIn'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/var/lib/openshift/558a25bd5973ca7a74000162/app-root/           runtime/repo/app.js:26:13)

TEST TEST TEST来自入口点文件开头的日志记录语句。似乎在命中之前就失败了。console.log("PORT: ", port);这很可能与app.js建立MongoDb连接有关。

[/编辑]


问题答案:

该错误原来是与端口无关的一般性错误。显然,如果出现致命的JavaScript错误,它会显示此消息。



 类似资料:
  • Tomcat启动失败,服务器端口8080已在使用中。 请帮助解决这个问题。我已经下载了mysql-connector-java-8.0.17.zip并解压了它。

  • 我正在使用create-react-app开发ReactJS应用程序。 npm start和npm run build应用程序工作正常,该应用程序运行在端口号为4000或pushstate-server build的端口9000,问题是我需要在公共url(如http://sample/home/)中运行没有端口号的构建应用程序,当我直接浏览build/index.html时,它正确显示了主页,但路

  • 问题内容: 我正在使用Jenkins,从昨天开始它已经停止工作。我看着Windows服务,它已被停止(以某种方式)。我重新启动了它,但此后它立即停止了。 我查看了从(C:\ Program Files \ Jenkins)运行服务的目录,并在其中打开了名为jenkins.out.log的日志文件。这就是它的意思 问题答案: 已修复- 适用于将来可能会遇到此问题的其他任何人。我用了这篇Techrep

  • 我已经在tomcat服务器上安装了应用程序。在启动和加载应用程序的过程中,我有以下堆栈跟踪的错误。如何解决这个问题? apache-tomcat-7.0.47/webapps/petclinic 2016年10月27日下午12:14:36 org。阿帕奇。卡塔琳娜。果心标准上下文起始内部 严重:ServletContainerInitializer处理javax时出错。servlet。Servle

  • 尝试通过Intellij IEDA运行Appium服务器时发生以下错误: 错误:无法启动应用程序会话,错误是:错误:命令失败:C:\WINDOWS\system32\cmd。exe/s/c“c:\Android\sdk\platform tools\adb.exe-s emulator-5554安装”c:\Program Files(x86)\Appium\node\u modules\Appiu