首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node/Express/Nuxt应用程序未获取环境变量

Node/Express/Nuxt应用程序未获取环境变量
EN

Stack Overflow用户
提问于 2019-05-30 10:09:59
回答 2查看 1.2K关注 0票数 2

我正在尝试用我的Vue/Nuxt应用程序来设置SendGrid,但是我只能通过硬编码API键来使它工作。当我尝试使用首选的环境变量方法时,我会得到一个未经授权的错误。这是因为应用程序没有选择变量,而是返回未定义的变量。

如何使应用程序获得变量?

我的API键保存在项目根中名为sendgrid.env的字段中。

然后,我在Nuxt项目中运行了一个Node/Express应用程序,代码如下:

代码语言:javascript
复制
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键来测试代码,所以键是正确的,只是环境变量没有被拾取。

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2019-05-30 10:38:41

在您的"dotenv": "^6.2.0"文件的依赖项部分有package.json吗?

require('dotenv').config();在你的主JS文件中?

这些线路是需要的,以使它工作。

票数 2
EN

Stack Overflow用户

发布于 2019-05-30 10:39:39

好的,我已经解决了这个问题。

使用@nuxt/dotenv似乎会导致读取环境变量的问题。

我删除了@nuxt/dotenv,并通过npm安装了dotenv,然后将API键放在.env文件中,然后将其取起。

离开这里以防对其他有类似问题的人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56376118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档