javascript - 如何在 Node.js 应用程序中最好地保护 MongoDB 数据库 URL
问题描述
我有一个基于 MongoDB 和 Node.js 的 API。在我的app.js
我有一个我需要包含的数据库 url,在 url 中有一个密码。是否有一种安全的方法可以将此 url 定义为另一个文件中的变量以供部署时使用?我可能会使用 Heroku 来部署它。
应用程序.js
const express = require("express");
const cors = require("cors");
const bodyParser = require("body-parser");
const product = require("./routes/product.route"); // Imports routes for the products
const app = express();
// Set up mongoose connection
const mongoose = require("mongoose");
// Change db url for new apps
let dev_db_url = "URL FOR MONGODB DATABASE TO BE SECURE";
const mongoDB = process.env.MONGODB_URI || dev_db_url;
mongoose.connect(mongoDB, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false });
mongoose.Promise = global.Promise;
const db = mongoose.connection;
db.on("error", console.error.bind(console, "MongoDB connection error:"));
解决方案
由于您使用的是 Heroku,因此存储凭据的最佳方式是将它们定义为配置变量,然后可以从process.env
Node.js中访问。
推荐阅读
- macos - 为什么 Piston 在 macOS 上会渲染一个空白窗口?
- python - 如何在 python3 中执行部分映射交叉?
- linux - bash 文件 Linux Ubuntu
- amazon-dynamodb - DynamoDB 上的嵌套查询效率高吗?
- python - 如何使用 selenium 和 python 与特定位置的弹出窗口交互
- python - 在主代码运行时保持 Python COM 本地服务器并行监听打开
- csv - F# 如何写入/读取 CSV 文件
- spring - Spring MVC 泛型对象绑定/类型转换
- java - LocalTime() 两次之间的差异
- c++ - 向用户询问指定数量的字符?