Node.js Can';t在openshift上运行特定版本的节点

Node.js Can';t在openshift上运行特定版本的节点,node.js,openshift,Node.js,Openshift,我正在按照存储库中描述的步骤进行操作,但似乎无法使其正常工作。当我查看我的文件时,nodejs版本仍然是.6.20 我的node js版本文件是默认文件,因此node version.8.9应该正在运行。知道为什么会这样吗 我的标记文件: 0.8.9 尝试启动应用程序时调试输出 ==> nodejs/logs/node.log <== npm ERR! node -v v0.6.20 npm ERR! npm -v 1.1.37 npm ERR! code ELIFECYCLE

我正在按照存储库中描述的步骤进行操作,但似乎无法使其正常工作。当我查看我的文件时,nodejs版本仍然是.6.20

我的node js版本文件是默认文件,因此node version.8.9应该正在运行。知道为什么会这样吗

我的标记文件:

0.8.9
尝试启动应用程序时调试输出

==> 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

本地运行正常。

也许这会有所帮助。有细微的差别。另见评论


您在“git push”输出中看到类似的内容了吗

在底部的底部,类似于:

remote:   - Using Node.js version 0.8.9, checking app URI ... 
remote:   - test URI = http://mynode-sannam.rhcloud.com/env
remote:   - Version from test URI = 
remote: 
remote:   - Checking to see if Node.js version 0.8.9 is installed ... 
我尝试了同样的指示,似乎奏效了。请在此处查看我的环境:


请再重复一次您的步骤。

我更喜欢这个版本的nodejs启动程序代码:

它包含一个较新版本的
.openshift
节点应用程序构建挂钩。它将读取标记文件,但也支持直接从
package.json
文件的
engines
属性读取,以编译Nodejs运行时

"engines": {
  "node": ">= 0.10.0",
  "npm": ">= 1.0.0"
},
我希望将其作为openshift上所有nodejs应用程序的默认
.openshift
文件夹内容

您还需要确保绑定到新的环境变量:
OPENSHIFT\u NODEJS\u IP
OPENSHIFT\u NODEJS\u端口
。它们最近被重新命名

我通常会在我的应用程序代码中添加类似的内容,使其可以在任何地方运行:

var ip_addr = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';
var port = process.env.OPENSHIFT_NODEJS_PORT || '8080';
OpenShift当前显示了
npm start
的输出,这可能不会显示应用程序的所有输出。有关其他调试信息,您可以尝试手动启动应用程序:

  • 首先,从命令行停止应用程序:
    rhc app stop app\u NAME
  • 然后,连接到您的应用程序设备/容器
    rhc ssh APP_NAME
  • cd$OPENSHIFT\u REPO\u DIR
  • 并手动运行
    package.json
    文件的
    scripts.start
    属性中定义的任何命令

  • 希望这能让您更清楚地了解正在发生的事情。

    我也遇到了同样的问题,一开始我无法使用源代码解决它,但在阅读推送输出时,我注意到了一些权限问题。 因此,对于其他有同样问题的人,只需进入:

    cd .openshift\action_hooks
    
    并运行以下命令:

    git update-index --chmod=+x *
    

    它提供了运行升级节点版本的命令的权限

    ,感谢您的提醒。我会重做它并关注这些消息。它成功了。我刚刚从头开始重新安装。谢谢你的帮助。对不起,我说得太早了。在git推送响应中,我安装了node.js版本0.8.9,但仍然是.6.2.0。我做错了什么?我需要查看您的it推送输出以及标记文件的内容。你可以把它们送到sannam@redhat.comDoesn我不能在这里工作。git push输出仍然使用打印
    remote:npm信息node@v0.6.20
    。谢谢。我没有读评论。但是我读了这篇文章。我想我需要更仔细地查看一下您在此处引用的存储库似乎已被删除。此git命令为我提供了各种错误:错误:.openshift/action\u hooks/build:无法添加到索引-缺少--add选项?致命:无法处理路径。openshift/action\u hooks/build似乎action\u hooks中的某些文件不在索引中。请尝试向命令添加--add标志
    cd .openshift\action_hooks
    
    git update-index --chmod=+x *