Ошибка типа [ERR_INVALID_ARG_TYPE]: Аргумент «path» должен иметь тип string. Получено неопределенное и код: ‘ERR_INVALID_ARG_TYPE’

#javascript #node.js #environment-variables

#javascript #node.js #переменные среды

Вопрос:

 import dotenv from "dotenv";
import path from 'path';

dotenv.config({
  path: path.resolve(path.__dirname, `${process.env.NODE_ENV}.env`),
});

export default config = {
  NODE_ENV: process.env.NODE_ENV || "development",
  HOST: process.env.HOST || "localhost",
  PORT: process.env.PORT || 3001,
};
 

Когда я пытаюсь сделать config.js файл для работы с несколькими файлами .env, но я получаю эту ошибку.ос: Windows 10

Ответ №1:

__dirname не находится в path модуле, поэтому path.__dirname не определено.

Вы должны использовать __dirname .

Смотрите здесь : https://www.digitalocean.com/community/tutorials/nodejs-how-to-use__dirname#:~:text=__dirname is an environment,js project.

Комментарии:

1. я тоже это сделал, но на этот раз я получаю эту ошибку «ReferenceError: __dirname не определено»

2. Смотрите здесь : nodejs.org/api/esm.html#no-__filename-or-__dirname

Ответ №2:

я решил с этим:

 import dotenv from "dotenv";
import path from 'path';

dotenv.config({
  path: path.resolve(path.dirname("/"), `${process.env.NODE_ENV}.env`),
});
const config = {
  NODE_ENV: process.env.NODE_ENV || "development",
  HOST: process.env.HOST || "localhost",
  PORT: process.env.PORT || 3001,
};


export default config;