首页 > 解决方案 > 如何在 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:"));

标签: javascriptnode.jsmongodb

解决方案


由于您使用的是 Heroku,因此存储凭据的最佳方式是将它们定义为配置变量,然后可以从process.envNode.js中访问。


推荐阅读