您是否有一个node.js项目,您想投入生产,但不知道如何?
在本教程中,您将学习如何将node.js和mongodb应用程序部署到Heroku。
在开始之前,让我们快速看一下Heroku和Mongodb。
什么是Heroku?
Heroku是一个云平台作为服务(PAA),使企业能够创建,交付,监视和扩展应用程序。
Heroku的创建是为了减轻基础架构的关注,并消除了您学习网络管理,服务器配置或数据库调整的需求。
本质上,Heroku消除了障碍,因此开发人员可以专注于创建出色的应用程序。
注意:Heroku将在11月28日拉开他们的免费计划。请记住,您必须从此日期开始使用Heroku付费。
什么是Mongodb Atlas?
mongoDB地图集是一个全局云数据库,可处理您选择的云服务提供商部署,管理和治愈您的部署的复杂性(AWS,Azure,GCP)。它使您可以在云中部署,管理和扩展MongoDB。
先决条件
继续前进,请确保设置以下设置:
创建一个新的mongodb群集
让我们从为该项目创建一个MongoDB cluster开始。登录到地图集和您的Atlas仪表板,请按照以下步骤创建一个新集群:
要更改默认集群名称,请单击“群集名称”选项卡,然后在输入字段中输入您的首选名称。
获取连接字符串
现在您已经创建了MongoDB群集,让我们获取连接字符串。
添加连接字符串
现在在项目中创建一个.env
文件,并添加连接字符串如下所示。
注意:将您的.env
文件添加到.gitignore
文件总是很好的做法,以免将其提交给git。
MONGODB_URI = "YOUR CONNECTION STRING"
以这种方式,您不会意外地向公众展示您的凭据。
要访问环境变量,我们将使用dotenv
软件包。使用以下命令安装它:
npm install --save-dev dotenv
安装完成后,请使用下面的代码段更新app.js
。
if (process.env.NODE_ENV !== "production") {
require("dotenv").config();
}
如果环境未设置为生产,则此代码段将加载.env
文件中的环境变量。默认情况下,在Heroku process.env.NODE_ENV
上设置为production
,因此将使用不同的环境变量。您可以使用此检查来包括只能在生产中运行的代码(或排除不应该不应该的代码)。
现在,如果您使用命令npm start
运行该应用程序,则该应用程序将连接到远程MongoDB群集。
安装Heroku CLI
让我们为应用程序部署设置Heroku。首先,使用下面的命令安装Heroku CLI。
npm install -g heroku
完成此操作后,更新package.json
以指定您的开始脚本。
"scripts": {
"start": "node app.js",
},
然后指定您将用于运行应用程序的node.js版本。
...
"engines": {
"node": "14.x"
}
最后,更新您的应用程序收听端口以默认在生产上收听Heroku。
const PORT = process.env.PORT || 3001;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
在本地运行node.js和mongodb应用程序
要测试一切是否按预期工作,请在部署之前在本地运行该应用程序。
heroku local web
对于此演示应用程序,您应该看到:Server is running on port 5000
和Connected to MongoDB
。
部署您的node.js和mongodb应用程序
在部署应用程序之前,我们需要创建一个Heroku应用程序,并添加将在生产中使用的环境变量。为此,请登录Heroku仪表板,然后单击“新”按钮。
选择“创建新应用”,输入应用程序名称,选择您的区域,然后单击“创建应用程序”按钮。
接下来,使用下面的命令登录到Heroku CLI。
heroku login
上面的命令将提示您获得凭据,并将您登录。</p>
然后在新的或现有目录中初始化GIT存储库。
git init
heroku git:remote -a crud-with-mongodb
接下来,将您的代码提交给存储库,并使用git将其部署到Heroku。
git add .
git commit -am "ready to deploy"
git push heroku main
等待应用程序部署的时间。部署完成后,Heroku CLI将为应用程序提供远程URL。
现在,回到您的Heroku应用程序!单击“设置”>“揭示config vars”,然后添加您的MONGODB_URI
。
最后,转到MongoDB群集('网络访问'>“ IP访问列表”>“添加IP地址”),然后将主机IP地址添加到网络权限列表中。这使您的主机访问群集。
对于本教程,我们将启用IP地址0.0.0.0/0
的任何地方访问。
现在,您已将Node.js应用程序部署到Heroku!
包起来
在这篇文章中,我们经历了将Node.js和MongoDB应用程序部署到Heroku的阶段。我们首先创建了一个MongoDB群集,然后在安装Heroku CLI并最终将我们的应用程序部署到Heroku之前,然后将数据库连接字符串添加到环境变量中。
。您可以在MongoDB's official Atlas docs和Heroku's official docs中了解更多信息。
快乐编码!
P.S。如果您喜欢这篇文章,subscribe to our JavaScript Sorcery list每月深入研究更神奇的JavaScript技巧和技巧。
P.P.S。如果您需要node.js应用程序的apm,请go和check out the AppSignal APM for Node.js。