【问题标题】:node-config returns always default settingsnode-config 始终返回默认设置
【发布时间】:2020-03-20 16:05:46
【问题描述】:

我正在将 node.js/express 应用程序移动到 nest.js。 应用程序的配置由节点配置(default.js 和主机特定的 js 文件)处理。 我已将配置文件复制到新的应用程序文件夹,导入配置模块,并使用了一些 config.get() 调用。旧应用程序运行良好,但使用 nest.js 我只能从 default.js 获得设置。有人知道为什么 node-config 不能与 nest.js 一起使用吗?

// main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import * as config from "config";

async function bootstrap() {
    const port = Number.parseInt( config.get( "application.port" ), 10 );
    console.log( `Server listening on port: ${port}` );

    const app = await NestFactory.create( AppModule );
    await app.listen( port );
}
bootstrap();

config.get() 总是返回来自 default.js 的值

【问题讨论】:

  • 你需要展示一些代码和发生了什么。 node-config 似乎在您的项目根目录中期待一个 conf 目录。
  • 两个应用程序的文件夹布局相同 /src/... /config/...nest.js 应用程序似乎找到了该文件夹,因为它从 default.js 返回配置文件夹。
  • Is this the package you are using?就像我说的,查看一些代码和正在发生的事情可能很有用
  • 它的这个npmjs.com/package/config 有时有/没有节点的命名有点奇怪。
  • 我不确定我是否理解您所说的 host specific js-files 的意思,并且看不出您所显示的内容有什么问题。通过查看npm 包,它看起来config 会根据NODE_ENV 更改它所提取的内容,如果您有development.jsproduction.js 之类的东西,但没有看到更多,我不能说

标签: node-config


【解决方案1】:

发现问题了,配置模块的版本 2 和 3 之间一定有一些更改,使得文件名加载算法区分大小写。回到 v2 解决了这个问题。 :-)

【讨论】:

    猜你喜欢
    • 2014-11-18
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 2017-12-25
    • 1970-01-01
    相关资源
    最近更新 更多