永远使用 运行 节点应用程序的问题
Issue with running node app using forever
所以我有一个 node.js 应用程序,我在其中使用节点配置管理器来管理各种环境(开发、暂存、生产)。
我试图在后台使用 forever 运行 这个进程,但是当我 运行 forever 启动 /path/to/main.js 时,它告诉我
Error: No file for this config - app.
错误是说它来自第 9 行。当它第一次尝试添加配置文件时,app.json。
1. import configManager from 'node-config-manager';
2. const options = {
3. configDir: './config',
4. env: 'develop',
5. camelCase: true
6. };
7. console.log(process.env.NODE_ENV);
8. configManager.init(options);
9. configManager.addConfig('app');
10. configManager.addConfig('logger');
11. configManager.addConfig('db');
export default configManager;
在我的 config 文件夹中还有其他三个文件夹,'develop'、'staging' 和 'production'。
在所有这些文件夹中,我有三个文件,app.json、db.json、logger.json。
所以我不确定是什么导致了这里的问题。配置 'develop' 确实存在,但似乎有问题。
这个应用程序 运行 当我用 nodemon 启动它时它很好,它只是永远导致问题。
我对 node-config-manager 工作原理的理解是否遗漏了什么?我以为我所要做的就是将我的 NODE_ENV 变量更改为我的配置目录中的文件夹的名称,我就准备好了。
在此先感谢您的帮助。
配置文件的./
指令查看当前工作目录的相对路径。 forever 可能不在项目的工作目录中 运行,因此找不到该文件。
如果您的项目生活在 /path/to
,那么您需要将其作为 --workdingDir
参数永久提供。
forever start /path/to/main.js --workingDir=/path/to/
应该处理它
所以我有一个 node.js 应用程序,我在其中使用节点配置管理器来管理各种环境(开发、暂存、生产)。
我试图在后台使用 forever 运行 这个进程,但是当我 运行 forever 启动 /path/to/main.js 时,它告诉我
Error: No file for this config - app.
错误是说它来自第 9 行。当它第一次尝试添加配置文件时,app.json。
1. import configManager from 'node-config-manager';
2. const options = {
3. configDir: './config',
4. env: 'develop',
5. camelCase: true
6. };
7. console.log(process.env.NODE_ENV);
8. configManager.init(options);
9. configManager.addConfig('app');
10. configManager.addConfig('logger');
11. configManager.addConfig('db');
export default configManager;
在我的 config 文件夹中还有其他三个文件夹,'develop'、'staging' 和 'production'。
在所有这些文件夹中,我有三个文件,app.json、db.json、logger.json。
所以我不确定是什么导致了这里的问题。配置 'develop' 确实存在,但似乎有问题。
这个应用程序 运行 当我用 nodemon 启动它时它很好,它只是永远导致问题。
我对 node-config-manager 工作原理的理解是否遗漏了什么?我以为我所要做的就是将我的 NODE_ENV 变量更改为我的配置目录中的文件夹的名称,我就准备好了。
在此先感谢您的帮助。
配置文件的./
指令查看当前工作目录的相对路径。 forever 可能不在项目的工作目录中 运行,因此找不到该文件。
如果您的项目生活在 /path/to
,那么您需要将其作为 --workdingDir
参数永久提供。
forever start /path/to/main.js --workingDir=/path/to/
应该处理它