如何从nodejs中的process.environment中提取环境变量

2024-02-28

我已成功将条纹支付集成到我的虚拟 Nodejs 项目中。但我仍然面临一个问题,它不允许我继续前进,因为我必须将代码推送到我的 github 存储库。因此,我通过 npm 安装了 dotenv 包,并创建了一个 .env 文件来存储我的条带密钥。如果我使用 process.env.STRIPE_SECRET_KEY 提取条带密钥,付款失败,但如果我直接传递 STRIPE_SECRET_KEY 付款成功。

我什至安慰了 process.env,它确实显示了我的条带密钥。

这是我的 server.js 文件:

const express = require('express');
const bodyParser = require('body-parser');
const dotenv = require('dotenv');
const cors = require('cors');

const payments = require('./routes/api/payment');

dotenv.config();

const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

app.use(cors())

app.use('/api/payments', payments);

app.get('/', (req, res) => res.send('hello'));

const port = process.env.PORT || 3001;

app.listen(port, () => console.log(`server running on port: ${port}`));

这是我的 payment.js 文件:

const express = require('express');
const stripe = require('stripe') (process.env.STRIPE_SECRET_KEY); // this 
                                                       gives network error
const stripe = require('stripe') ("sk_test_O5le6FijZU4KcoxE4"); // this 
                                                           works gracefully
const router = express.Router();

router.get('/', (req, res) => {
  res.json({
   message: 'Payment gateway works',
   time: Date.now
  });
})

router.post('/', (req, res) => {
  const credentials = {
  source: req.body.token.id,
  amount: req.body.amount,
  currency: "usd",
  description: req.body.description
}

stripe.charges.create(credentials, (err, response) => {
  if (err) {
  return res.status(400).json({ message: err })
   }
  return res.status(200).json({ message: response })
  })

  })

module.exports = router;

这是我的 .env 文件:

STRIPE_SECRET_KEY = sk_test_O5le6FijZU4KcoxE4

直接将条带密钥传递给条带是可行的,但如果我使用 process.env.STRIPE_SECRET_KEY 提供条带密钥,则会失败。 我希望 process.env.STRIPE_SECRET_KEY 能够正常工作,以便我可以安全地将代码推送到我的 github 存储库。


我在这里看到问题 您需要在 main 导入后初始化 dontenv!

const express = require('express');
const dotenv = require('dotenv');
const bodyParser = require('body-parser');
const cors = require('cors');

dotenv.config(); // here after main imports

// After dotenv.config() payment.js will have dontenv values!!
const payments = require('./routes/api/payment');

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从nodejs中的process.environment中提取环境变量 的相关文章

  • 计算两点之间的最短路线

    过去几周我一直在开发一款多人 HTML5 游戏 使用nodejs and websockets 我已经被这个问题困扰了一段时间 想象一下 我用数组实现了这个平铺地图 如下所示 1 or 棕色瓷砖 路上有障碍物 玩家无法通过 0 or 绿色瓷
  • 为 npm install 添加本地项目依赖

    在 npm 中添加本地项目依赖项的正确语法是什么package json file 我本地有 git 项目C projects MyApp 我想得到这个项目npm install 我尝试以下 dependencies my app file
  • Socket.io 400(错误请求)

    我的服务器上有这段代码 var express require express var routes require routes var user require routes user var http require http var
  • 使用 Socket.io 向多个房间发送消息?

    是否可以使用socket io向多个房间发送消息 发送至 1 个房间 io sockets in room emit id 发送到N个房间 io sockets in room1 room2 roomN emit id 是的 可以同时发送到
  • 简单 AJAX Get 请求“待处理”

    我正在尝试实现一个简单的 AJAX GET 请求 该请求告诉服务器删除数据库中的文档 虽然我从服务器得到文档已删除的确认 但 Chrome 检查器显示该请求处于 待处理 状态 最终导致服务器错误 我做错了什么 HTML div class
  • 警告:访问循环依赖内模块导出的不存在属性“MongoError”

    我正在使用节点执行 API 并使用 Mongoose 当我给一个yarn dev启动我的 Nodemon Mongo 出现错误 我不知道如何解决这个问题 有人有什么想法吗 我使用的是 MongoDB Atlas 数据库 就在出现以下错误之后
  • 未捕获的 ReferenceError:未定义角度 - Mean.IO

    我已遵循安装步骤 http mean io docsmean io 但是当我浏览 localhost 3000 时 我得到一个空白页面 当我打开控制台时 我得到一个指向相同错误的文件列表 未捕获的引用错误 角度未定义 我的问题是类似的to
  • 将消息从 AWS Lambda 发布到 AWS IoT

    我正在尝试使用 Nodejs 将消息从 AWS Lamba 发布到 AWS IoT 我已压缩该项目并上传到 AWS IoT 下面是代码片段 var awsIot require aws iot device sdk var device a
  • 当尝试将 formData 发送到 Express js 时,服务器无法识别 multipart/form-data

    我正在尝试将表单数据上传到快递服务器 在我的 Express js 服务器上 我有以下内容 router post uploads id function req res res send req body const title req
  • 嵌套异步/等待 Nodejs

    似乎无法弄清楚为什么这对我不起作用 我有一个父函数 它对子加载进程执行 AWAIT LOAD 进程又调用另一个名为 LOADDATA 的 AWAIT 所以基本上是这样的 module exports async function try a
  • Nodejs - 检查隐藏文件

    我正在迭代文件目录 想知道是否可以测试文件是否隐藏 目前 我只是检查文件是否以 开头或不 这适用于 Mac 也许还有 Linux 但是 我想知道如何在 Windows 上做到这一点 另外 句点会在所有版本的 Linux 中隐藏该文件吗 Th
  • Node.js 未处理的“错误”事件

    我编写了一个简单的代码并将其保存在文件 try js 中 var http require http var makeRequest function message var options host localhost port 8080
  • 最小验证在 Mongoose 中不起作用

    我有一个架构 其中余额字段的声明如下所示 balance type Number min 0 default 30 我将 0 设置为最小值 这样余额就不会为负值 但是当我通过更新查询减少余额值时 余额结果是负值 我的更新查询 User up
  • 无法连接到 Node.js 上的 MySQL 数据库

    我仍然不明白为什么在尝试连接到 Node js 上的 MYSQL Server 时仍然收到此错误消息 ERROR Error ER ACCESS DENIED ERROR Access denied for user root localh
  • 如何阻止 Node.js 服务器崩溃

    我是节点js新手 我试图创建一个简单的 HTTP 服务器 我按照著名的例子创建了一个 Hello World 服务器如下 var handleRequest function req res res writeHead 200 res1 e
  • NPM 无法在 Windows 上安装“truffle”

    我正在尝试使用 npm 安装 truffle 但我不熟悉 NodeJS 并且不明白为什么 npm 不会安装它 我尝试npm install g truffle在具有管理员权限的 Powershell 中 经过几行输出后 我收到以下错误消息块
  • 从 websocket 发送数据到 socket.io

    我使用 websocket 接口连接到 websocket 服务器 如果我想将通过 websocket 接口从 websocket 服务器接收到的数据发送到通过 http 服务器连接到我的客户端 我应该使用 socket io 吗 所以最后
  • Express中间件修改请求

    我目前有一个正在运行的服务器 前端使用nodejs mongo express 和 W2UI W2ui 请求来自包含所有参数的记录数组 记录 名称 foo 我想编写一个中间件 在请求到达路由之前对其进行编辑和更改 您可以创建自己的中间件来处
  • 在文件之间共享 mqtt 客户端对象

    我这样连接到 MQTT mqtt js const mqtt require mqtt var options needed options var client mqtt connect mqtt someURL options clie
  • Meteor.setTimeout 和 Meteor.methods 之间的并发

    在我的 Meteor 应用程序中实现回合制多人游戏服务器 客户端通过发布 订阅接收游戏状态 并且可以调用 Meteor 方法sendTurn将回合数据发送到服务器 他们无法直接更新游戏状态集合 var endRound function g

随机推荐