2

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

我的 node js 版本文件是默认的,所以 node 版本 .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

只是为了完整性。我的 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":"*"
  }
}

应用程序在本地运行得很好。

4

4 回答 4

6

我更喜欢这个版本的 nodejs 入门代码:https ://github.com/ryanj/nodejs-custom-version-openshift

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

"engines": {
  "node": ">= 0.10.0",
  "npm": ">= 1.0.0"
},

我希望将其合并.openshift为OpenShift 上所有 nodejs 应用程序的默认文件夹内容。

您还需要确保绑定到的环境变量:OPENSHIFT_NODEJS_IPOPENSHIFT_NODEJS_PORT. 这些最近被重新命名。

我通常会在我的应用程序代码中添加这样的东西,让它可以在任何地方运行:

var ip_addr = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';
var port = process.env.OPENSHIFT_NODEJS_PORT || '8080';

OpenShift 当前向您显示来自 的输出npm start,这可能不会显示您的应用程序的所有输出。有关其他调试信息,您可以尝试手动启动您的应用程序:

  1. 首先,从命令行停止您的应用程序:rhc app stop APP_NAME
  2. 然后,连接到您的应用程序齿轮/容器rhc ssh APP_NAME
  3. cd $OPENSHIFT_REPO_DIR
  4. package.json并手动运行文件scripts.start属性中定义的任何命令。

希望这能让您对正在发生的事情有更多的了解。

于 2013-06-14T18:37:12.657 回答
1

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

https://www.openshift.com/blogs/any-version-of-nodejs-you-want-in-the-cloud-openshift-does-it-paas-style

于 2013-06-13T20:43:36.820 回答
1

你有没有在你的“git push”输出中看到类似的东西?

remote:   - Checking to see if Node.js version 0.8.9 is installed ... 
remote:   - Downloading and extracting http://nodejs.org/dist/v0.8.9/node-v0.8.9-linux-x64.tar.gz ... 
remote:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
remote:                                  Dload  Upload   Total   Spent    Left  Speed
remote: 100 4578k  100 4578k    0     0  31.4M      0 --:--:-- --:--:-- --:--:-- 33.8M

并朝着底部的底部,例如:

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

我尝试了相同的说明,似乎奏效了。在这里检查我的环境:http: //mynode-sannam.rhcloud.com/env

请再重做一次。

于 2013-06-13T20:58:32.903 回答
1

我遇到了同样的问题,一开始我无法使用https://github.com/ryanj/nodejs-custom-version-openshift的源代码解决它,但是阅读推送输出时我注意到了一些权限问题。因此,对于遇到相同问题的其他人,只需进入:

cd .openshift\action_hooks

并运行此命令:

git update-index --chmod=+x *

它授予运行升级节点版本的命令的权限

于 2015-03-11T13:56:19.350 回答