我在生产中的 nextjs CRUD 应用程序中的 mongodb 连接字符串有问题。我遵循了本指南:https ://www.mongodb.com/developer/how-to/nextjs-building-modern-applications/
我在这里阅读了有关环境变量的信息:https ://nextjs.org/docs/basic-features/environment-variables给了我一个想法,即我应该能够安全地将连接字符串存储为环境变量,而不会将其暴露给浏览器,鉴于我应该只需要在服务器端使用它?
当我在本地运行应用程序时,它工作得很好。但是在生产(天蓝色应用程序服务)中,连接字符串似乎未定义,除非我通过向变量添加“NEXT_PUBLIC_”前缀将其公开给浏览器。
公开这个变量是否安全/我是否应该做一些不同的事情以使其在不公开它的情况下工作/是否应该完全采用另一种方法?
我的数据库.js:
import { MongoClient } from 'mongodb';
import nextConnect from 'next-connect';
const client = new MongoClient(process.env.DB_CONNECTION_STRING, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
async function database(req, res, next) {
await client.connect();
req.dbClient = client;
req.db = client.db('Loggen');
return next();
}
const middleware = nextConnect();
middleware.use(database);
export default middleware;