我遵循此存储库中描述的步骤,但我似乎无法使其工作.当我查看我的env文件时,nodejs版本仍然是.6.20
我的节点js版本文件是默认版本,因此应该运行节点版本.8.9.知道为什么会这样吗?
我的标记文件:
0.8.9
Run Code Online (Sandbox Code Playgroud)
我尝试启动应用程序时调试输出
==> nodejs/logs/node.log <==
npm ERR! node -v v0.6.20
npm ERR! npm -v 1.1.37
npm ERR! code ELIFECYCLE
npm ERR! message application-name@0.0.1 start: `node server.js`
npm ERR! message `sh "-c" "node server.js"` failed with 1
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /var/lib/openshift/51ba8386e0b8cd2873000002/app-root/runtime/repo/npm- debug.log
npm ERR! not ok code undefined
npm ERR! not ok code 1
Run Code Online (Sandbox Code Playgroud)
只是为了完整.我的package.json文件
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "3.2.5",
"mustache": "*",
"request" : "*",
"buildify":"*",
"cheerio" : "*",
"slugs" : "*",
"to-markdown":"*",
"consolidate":"*"
}
}
Run Code Online (Sandbox Code Playgroud)
该应用程序在本地运行就好了.
我更喜欢这个版本的nodejs入门代码:https://github.com/ryanj/nodejs-custom-version-openshift
它包含.openshiftnodejs 的更新版本的应用程序构建挂钩.它将读取Marker文件,但也支持直接从package.json文件的engines属性读取以编译Nodejs运行时.
"engines": {
"node": ">= 0.10.0",
"npm": ">= 1.0.0"
},
Run Code Online (Sandbox Code Playgroud)
我希望将它合并为.openshiftOpenShift上所有nodejs应用程序的默认文件夹内容.
您还需要确保绑定到新的环境变量:OPENSHIFT_NODEJS_IP和OPENSHIFT_NODEJS_PORT.这些最近被重命名.
我通常会将这样的内容添加到我的应用程序代码中,允许它在任何地方运行:
var ip_addr = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';
var port = process.env.OPENSHIFT_NODEJS_PORT || '8080';
Run Code Online (Sandbox Code Playgroud)
OpenShift当前显示输出npm start,可能无法显示所有应用程序的输出.有关其他调试信息,您可以尝试手动启动应用程序:
rhc app stop APP_NAMErhc ssh APP_NAMEcd $OPENSHIFT_REPO_DIRpackage.json文件scripts.start属性中定义的任何命令.希望这能让您更清楚地了解正在发生的事情.