部署在Openshift上的Sails.js项目的错误可视化

我在Openshift上部署了我的Sails项目。 它的工作原理,但我收到错误的websockets,我无法加载build立在ejs上的页面。

我发现这些链接足以解释有关grunt / openshift,但我无法解决问题。

在Openshift上部署Sails.js

在Openshift上部署Sails.js …应用程序重新启动

我的nodejs.log是:

DEBUG: Running node-supervisor with DEBUG: program 'app.js' DEBUG: --watch '/var/lib/openshift/537b5ae8500446c95900057f/app-root/data/.nodewatch' DEBUG: --ignore 'undefined' DEBUG: --extensions 'node|js|coffee' DEBUG: --exec 'node' DEBUG: Starting child process with 'node app.js' DEBUG: Watching directory '/var/lib/openshift/537b5ae8500446c95900057f/app-root/data/.nodewatch' for changes. Warning: connection.session() MemoryStore is not designed for a production environment, as it will leak memory, and will not scale past a single process. ^[[32minfo^[[39m: ^[[32minfo^[[39m: ^[[32minfo^[[39m: Sails.js <| ^[[32minfo^[[39m: v0.9.16 |\ ^[[32minfo^[[39m: /|.\ ^[[32minfo^[[39m: / || \ ^[[32minfo^[[39m: ,' |' \ ^[[32minfo^[[39m: .-'.-==|/_--' ^[[32minfo^[[39m: `--'-------' ^[[32minfo^[[39m: __---___--___---___--___---___--___ ^[[32minfo^[[39m: ____---___--___---___--___---___--___-__ ^[[32minfo^[[39m: ^[[32minfo^[[39m: Server lifted in `/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo` ^[[32minfo^[[39m: To see your app, visit http://127.2.95.129:8080 ^[[32minfo^[[39m: To shut down Sails, press <CTRL> + C at any time. ^[[34mdebug^[[39m: -------------------------------------------------------- ^[[34mdebug^[[39m: :: Wed May 21 2014 14:26:01 GMT-0400 (EDT) ^[[34mdebug^[[39m: ^[[34mdebug^[[39m: Environment : production ^[[34mdebug^[[39m: Host : 127.2.95.129 ^[[34mdebug^[[39m: Port : 8080 ^[[34mdebug^[[39m: -------------------------------------------------------- ^[[31merror^[[39m: Server doesn't seem to be starting. ^[[31merror^[[39m: Perhaps something else is already running on port 8080 with hostname 127.2.95.129? ^[[32minfo^[[39m: handshake authorized qR_aOT3qx40k6X34CF-2 ^[[32minfo^[[39m: handshake authorized tnAUouwi-d32h82rCF-3 ^[[33mwarn^[[39m: websocket connection invalid ^[[32minfo^[[39m: transport end (undefined) ^[[31merror^[[39m: Error rendering view at :: /var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/views/viewshows/index ^[[31merror^[[39m: Using layout located at :: /var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/views/layout ^[[31merror^[[39m: Error: Failed to lookup view "viewshows/index" at Function.app.render (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/node_modules/express/lib/application.js:495:17) at ServerResponse.res.render (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/node_modules/express/lib/response.js:798:7) at ServerResponse._addResViewMethod.res.view (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/lib/hooks/views/index.js:297:15) at module.exports.index (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/api/controllers/ViewShowsController.js:32:13) at _bind.enhancedFn (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/lib/router/bind.js:375:4) at callbacks (/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/node_modules/sails/node_modules/express/lib/router/index.js:164:37) 

在这里我的app.js:

 require('sails').lift(require('optimist').argv); 

在这里我的local.js:

 module.exports = { host: process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1", port: process.env.OPENSHIFT_NODEJS_PORT || 8080, environment: process.env.NODE_ENV || 'development' } 

调用“env |” grep OPENSHIFT_NODEJS_PORT'在openshift控制台我收到:

 OPENSHIFT_NODEJS_PORT=8080 

在我看来,问题不是港口。 服务器启动并正确回答。 但是当我打电话给build立在ejs上的页面时,它会用一个json来回答我。

 {"view":{"name":"viewshows/index","root":"/var/lib/openshift/537b5ae8500446c95900057f/app-root/runtime/repo/views","defaultEngine":"ejs","ext":".ejs"}} 

…并在服务器日志中打印上面的错误。

任何build议?

谢谢

我相当肯定的是,openshift要求你的应用程序监听一个特定的端口,由环境variables指定,而不是8080

你将要改变你的app.js在这个openshift文档中使用主机名和端口环境variables