nodejs的openshift不遵守package.json中我的服务器文件的路径

时间:2015-06-04 07:05:28

标签: node.js openshift

我一直在研究Node.js服务器,现在正将它上传到OpenShift。我没有使用默认的./server.js文件,而是我的插入点是./bin/www。

我已经将它设置为package.json中的插入文件,如下所示:

{
  "name": "NekoList",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "./bin/www"
...
},

我可以验证www是否在./bin此目录中,并且它是一个有效的javascript文件,可以在我的本地环境中正常运行。

根据here

但是,我可以从我的日志中看出,OpenShift仍在尝试查找./server.js

这里可能会发生什么?我可以发布哪些其他信息会有所帮助?

注意:这与this thread中的问题有关,但是,当我意识到问题实际上不是依赖问题时,我决定为真正的问题创建一个新线程。

2 个答案:

答案 0 :(得分:1)

好吧我觉得我找到了问题。

根据您提供的信息和此处的信息:Markers files for Node.js,您必须添加标记&#39; use_npm&#39;使用npm start启动服务器(它在package.json上的脚本部分中查找启动脚本),而不是:supervisor <whatever-you-gave-for-main-on-package.json

因此,您必须在use_npm下添加名为.openshift/markers的空文件。然后提交更改并进行部署。然后它应该使用项目的./bin/www启动服务器,并且您仍然必须在package.json上使用node $OPENSHIFT_REPO_DIR/bin/www start

顺便说一下,你还没有在这里给出你为package.json主要部分提供的内容。

答案 1 :(得分:0)

您正在使用"scripts"属性,但在OpenShift上,您需要使用"main"。这是因为OpenShift使用node-supervisor来启动和管理您的Node.js应用程序。