Я работаю с документом config.env, и он не работает после вызова индексного документа - PullRequest
1 голос
/ 04 августа 2020

По какой-то причине следующий код в config.env не работает, я использую библиотеки узлов, и у меня есть библиотека dotenv, но в коде есть ошибка с токенами.

CLIENT_URL = https://localhost:3000
JWT_ACCOUNT_ACTIVATION = 6f19ab9cb7a8a8eee85f0e2f5a5dfe77993d390ec486aa00317c8e6f63f7661181313eb551f7a7b4c34c60641f57e94ccabdd8d5be2fe07dfda21651473e0a39
JWT_SECRET = 764366c6415126025d84ed1abcc6b9b04a6e50510953a76abcb5d72e2fe3e04a074dd9871e390c6d1214db7af574c0afc82d292aa96217aa647a88d3cc8accd4
JWT_RESET_PASSWORD = 192366c6415126025d84ed1abcc6b9b04a6e50510953a76abcb5d72e2fe3e04a074dd9871e390c6d1214db7af574c0afc82d292aa96217aa647a88d3cc8accd4
EMAIL_FROM = rey@gro.com
MAIL_KEY = SG.G.10jePCxnP9PXodfPNF3aALV1C10hI

Терминал приносит мне это

C: \ xampp \ htdocs \ seth \ api \ src \ config \ config.env: 1 CLIENT_URL = https://localhost: 3000 ^

SyntaxError: Unexpected token ':'
    at wrapSafe (internal/modules/cjs/loader.js:1054:16)
    at Module._compile (internal/modules/cjs/loader.js:1102:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at Function.Module._load (internal/modules/cjs/loader.js:879:14)
    at Module.require (internal/modules/cjs/loader.js:1026:19)
    at require (internal/modules/cjs/helpers.js:72:18)
    at Object.<anonymous> (C:\xampp\htdocs\seth\api\src\index.js:10:11)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
[nodemon] app crashed - waiting for file changes before starting...

Но я Не знаю почему, я вызываю этот документ для Rest API, и метод для его вызова таков:

const config = ("./config/config.env");

// Config dotev
require('dotenv').config({
    path: require(config)
})

Все выглядит нормально, поэтому я точно не знаю, в чем проблема

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Хорошо, решение - logi c, после исследования темы я нашел разные решения, но не все из них работают, поэтому я попробовал создать console.log и обнаружил, что переменные env не объявляется.

Имея эту информацию, я сделал вывод, что путь маршрутизации не работает, и через некоторое время я нашел следующий код __dirname.

Он предназначен для получения абсолютных маршрутов, поэтому я применил его:

require('dotenv').config({path:__dirname+'/config.env'})

теперь он работает с этим простым изменением

И причина того, что консоль приносит мне ключ API, не начинается с SG. потому что я вызываю его в другом документе, поэтому консоль не ie, ключ API не определен

0 голосов
/ 04 августа 2020

Узел не может require простые файлы. Любые файлы, которые используют require для загрузки, должны быть проанализированы узлом, поэтому может быть Javascript или JSON.

Чтобы использовать существующий код, конфигурационный файл должен иметь вид JSON (или js)

{
"CLIENT_URL": "https://localhost:3000",
"JWT_ACCOUNT_ACTIVATION": "xxx"
}

В качестве альтернативы dotenv может загрузить эту конфигурацию

require('dotenv').config({ path: './config/config.env' })

Я не уверен насчет пробелов, для этого могут потребоваться такие значения, как:

CLIENT_URL=https://localhost:3000
JWT_ACCOUNT_ACTIVATION=xxx
...