配置 属性 "dialect" 未定义

Configuration property "dialect" is not defined

我在使用配置 npm 包设置项目时遇到问题。

我的 config.js 看起来像这样:


require('dotenv').config();

const { DB_HOST, DB_USERNAME, DB_PASSWORD, SENDGRID_API_KEY } = process.env;
const env = process.env.NODE_ENV;

const config = {
 development: {
   username: DB_USERNAME,
   password: DB_PASSWORD,
   database: "database_development",
   host: DB_HOST,
   dialect: "postgres",
   sendgrid: {
     base_url: 'https://localhost:3002',
     sendgrid_api_key: SENDGRID_API_KEY,
     sender_email: '',
     enabled: true,
   },
 },
 test: {
   username: DB_USERNAME,
   password: DB_PASSWORD,
   database: "database_test",
   host: DB_HOST,
   dialect: "postgres",
   sendgrid: {
     base_url: 'https://localhost:3002',
     sendgrid_api_key: SENDGRID_API_KEY,
     sender_email: '',
     enabled: true,
   },
 },
 production: {
   username: DB_USERNAME,
   password: DB_PASSWORD,
   database: "database_production",
   host: DB_HOST,
   dialect: "postgres",
   sendgrid: {
     base_url: 'https://localhost:3002',
     sendgrid_api_key: SENDGRID_API_KEY,
     sender_email: '',
     enabled: true,
   },
 }
};

module.exports = config[env];

在 1 个服务驱动程序文件中,我有以下行:

const dialect = config.get('dialect');

我收到以下错误:“错误:配置 属性 “方言”未定义”。

我也尝试过使用 'development.dialect',但这也无济于事。

有没有可能是 require('config'); 不起作用?

在我的 Sequelize 的 index.js 文件中我得到了
const config = require(__dirname + '/../config/config.js'); 这似乎工作正常。

这个 github 存储库提供了使用 config 包的一个很好的例子。
https://github.com/basarbk/tdd-nodejs
备注:

  1. 对于不同的配置,您必须有一个名为您用于 NODE_ENV 的文件。例如,为 "start": "cross-env NODE_ENV=production node index" 创建一个名为 production.js
    的文件 检查根目录中的配置文件夹
  2. 如果您使用 window,您应该使用 cross-env