是的,我有几个应用程序可以做到这一点!注册一个免费的MongoDB Atlas 帐户,然后您可以将数据存储在他们的服务器上,并将您的 Express 应用程序指向连接 URL。基本上,他们会给你一个这样的 URL:
mongodb+srv://your-cluster-name:a232dfjoi39034r@atlas-free-cluster-czaoo.mongodb.net/blog-app?retryWrites=true
然后您可以将其存储在 .env 文件中,如下所示:
MONGODB_URL=mongodb+srv://your-cluster-name:a232dfjoi39034r@atlas-free-cluster-czaoo.mongodb.net/blog-app?retryWrites=true
然后像这样从您的应用访问:
mongoose.connect(process.env.MONGODB_URL, connectionOptions)
.catch((err) => {
console.log('Error on initial DB connection: ', err);
});
您需要在开发端使用 npm 包(例如 dotenv)在您的应用中加载 .env 文件。对于heroku,您可以使用heroku-cli
并为您的应用设置任何环境变量,如下所示:
heroku config:set MONGODB_URL=mongodb+srv://your-cluster-name:a232dfjoi39034r@atlas-free-cluster-czaoo.mongodb.net/blog-app?retryWrites=true
注意,开发 MongoDB URL 可以是本地实例的连接字符串,例如:
MONGODB_URL=mongodb://localhost:27017/my-blog-app
heroku 可以是 MongoDB Atlas 集群。
对于 Node 应用,还有一些其他配置需要做,比如在 package.json 中有一个“启动”脚本,对于使用 express-generator 创建的 Express 应用来说,该脚本如下所示:
"scripts": {
"start": "node ./bin/www"
但对于您的情况可能会有所不同。它应该指向作为服务器入口点的任何文件。
您还需要从 process.env.PORT 设置 PORT,heroku 将在他们的一端设置,而在您的一端,您可以默认为 3000:
const PORT = process.env.PORT || 3000;
app.listen(PORT);
如果您有任何问题,请随时 PM 我或在这里提问,我可以进一步详细说明。前几次可能会令人生畏,但是一旦掌握了窍门,通过这种方式将东西部署到heroku实际上真的很容易!您还可以查看 heroku docs 以部署 Node 应用程序。