node.js - 如何在 Openshift 中设置 KoaJS

标签 node.js openshift koa

我一直在关注如何在 openshif ( http://www.zev23.com/2014/04/openshift-harmony-nodejs.html ) 中启用自定义 Node 版本的示例,因此当我 ssh 到应用程序时,我可以看到已安装的 Node 版本(0.11.14),但是当我查看日志时,它说 app.use(function *(){ ... SyntaxError: Unexpected token * 并且我收到 503 错误。

这是我的 server.js 文件:

var koa = require('koa');
var app = module.exports = koa();

app.use(function *(){
  this.body = 'Hello World';
});

var ipaddress = process.env.OPENSHIFT_INTERNAL_IP || process.env.OPENSHIFT_NODEJS_IP;
var port = process.env.OPENSHIFT_INTERNAL_PORT || process.env.OPENSHIFT_NODEJS_PORT || 8080;
if (typeof ipaddress === "undefined") {
   //  Log errors on OpenShift but continue w/ 127.0.0.1 - this
   //  allows us to run/test the app locally.
   console.warn('No OPENSHIFT_NODEJS_IP var, using 127.0.0.1');
   ipaddress = "127.0.0.1";
};
if (!module.parent) app.listen(port, ipaddress);

我还在 NODEJS_VERSION 内添加了 0.11.14

__ 更新 __

我使用 ssh 检查了服务器,它显示 Node 0.11.14,但是当我在实际的 Web 应用程序启动之前添加这些行(见下文)时,它看起来像是在 Node 0.10.25 上运行,并且 .bash_profile 中设置的路径不是路径中使用的路径。

var ipaddress = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1";
var port = process.env.OPENSHIFT_NODEJS_PORT || 8080;
console.log(ipaddress, port);
console.log(process.versions);
console.log(process.env.PATH);

有没有办法在实际应用程序启动之前配置 PATH,以便它将使用 0.11.14 而不是 0.10.25

先谢谢大家了

最佳答案

我已按照 https://github.com/ramr/nodejs-custom-version-openshift 中的说明进行操作现在一切正常。刚刚在 package.json 中添加了 main: --harmony server.js

关于node.js - 如何在 Openshift 中设置 KoaJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26924967/

相关文章:

node.js - 路由器文件在koa js、nodejs上没有得到返回结果

javascript - 是否可以破坏我的导入语句

python - 将Flask应用程序部署到OpenShift

javascript - 引用错误: Cannot access 'Player' before initialization

node.js - OpenShift :/lib64/libz. so.1 上的 NodeJS 应用程序:未找到版本 `ZLIB_1.2.9'

java - openshift eclipse 发布卡住

koa - koa-body 与 koa-bodyparser 有什么区别?

javascript - yield 如何理解 Node.js/Koa.js 应用程序中的 Promises?

Node.js Express 3.x 将变量传递给 View

node.js - 用于 bower 组件的 Express.js 路由