所以我有一个node.js应用程序,我在其中使用node-config-manager来管理各种环境(开发、暂存、生产)。
我试图使用forever在后台运行这个进程,但是当我运行forever start/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”和“生产”。
在所有这些文件夹中,我有三个文件:app.json、db.json 和 logger.json。
所以我不确定是什么导致了这里的问题。配置“develop”确实存在,但似乎有问题。
当我使用 nodemon 启动该应用程序时,它运行良好,但它永远会导致问题。
我对 Node 配置管理器如何工作的理解是否遗漏了一些东西?我认为我所要做的就是将我的 NODE_ENV 变量更改为我的配置目录中的文件夹的名称,然后我就完成了。
预先感谢您的所有帮助。
最佳答案
配置文件的 ./
指令查看当前工作目录的相对路径。 Forever 可能没有从项目的工作目录运行,因此它找不到该文件。
如果您的项目位于 /path/to
中,那么您需要将其作为 --workdingDir
参数永远提供。
永远启动/path/to/main.js --workingDir=/path/to/
应该可以解决这个问题
关于node.js - 使用永远运行 Node 应用程序时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36263998/