Переменная окружения не выбирается приложением Node / Express / Nuxt - PullRequest
1 голос
/ 30 мая 2019

Я пытаюсь настроить SendGrid с моим приложением Vue / Nuxt, однако я могу заставить его работать только путем жесткого кодирования ключа API. Когда я пытаюсь использовать предпочтительный метод переменной среды, я получаю несанкционированную ошибку . Это связано с тем, что приложение не выбирает переменную, а возвращает Undefined .

Как заставить приложение получить переменную?

Мой API-ключ хранится в файле с именем sendgrid.env в корне проекта.

Затем у меня в приложении Nuxt работает приложение Node / Express со следующим кодом:

const express = require('express')
const app = express()

app.get('/', (req, res, next) => {
  res.send('API root')
})

app.get('/sendmail', (req, res, next) => {

// using Twilio SendGrid's v3 Node.js Library
// https://github.com/sendgrid/sendgrid-nodejs
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);

const msg = {
    to: 'somebody@something.net',
    from: 'no-reply@somewhereelse.com',
    subject: 'Test SendGrid',
    text: 'This is a test of the SendGrid app on Node',
    html: '<strong>This is a test of the SendGrid app on Node</strong>',
};

sgMail.send(msg);

res.send('SendMail API');

})

// export the server middleware
module.exports = {
  path: '/api',
  handler: app
}

Я проверил код, используя Curl, а также жестко запрограммировав ключ API, поэтому ключ верен, это просто переменная среды, которая не берется.

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Есть ли у вас строка "dotenv": "^ 6.2.0" в разделе зависимостей в файле package.json?и "require ('dotenv'). config ()" в основном файле js?Требуется, чтобы это заработало

0 голосов
/ 30 мая 2019

Хорошо, я решил проблему.

Кажется, что использование @ nuxt / dotenv вызывает проблемы с чтением из переменных среды.

Я удалил @ nuxt / dotenv и только что установил dotenv через npm , затем поместил ключ API в файл .env и его подняли.

Оставьте здесь, если это поможет кому-то еще, имеющему подобную проблему.

...