我想在server.js启动之前启动crawler.js从Internet获取一些页面。我试图将package.json更改为' "脚本":prestart:crawler.js'。但似乎它不起作用。有谁知道为什么?
答案 0 :(得分:1)
package.json
命令启动节点应用程序时,npm start
中描述的
如果您使用本地计算机,这是完美的方式,但OpenShift以不同的方式工作。它使用node-supervisor来运行您的节点应用。默认情况下,此主管从您的$ OPENSHIFT_REPO_DIR运行node server.js
以启动您的节点应用。你无法改变这种行为。
Openshift允许您为此类作业定义Action Hook。你必须编写脚本(在shell或python或ruby等中)并将它们放在<repository>/.openshift/action_hooks
中。这些脚本由OpenShift在不同时间执行,如Cartridge启动,停止,重启或默认构建生命周期。仔细阅读documentation,了解它们的工作原理并在您的应用中使用它们。
还有一个示例操作挂钩,用于检查MongoDB数据库中是否有数据,如果没有,则从应用程序的git存储库导入数据。