使用MongoDB Atlas和MongoDB Compass连接到数据库的应用程序在Heroku上部署

使用MongoDB Atlas,使得可以从本地主机以外连接到MongoDB。

MongoDB Atlas是MongoDB官方提供的主机服务。 (https://www.mongodb.com/cloud/atlas)

スクリーンショット 2020-07-18 16.33.48.png

打开”创建新集群”页面,进行要创建的数据库的配置设置。
※ cluster指的是可以从多个服务器连接的MongoDB数据库。

スクリーンショット 2020-07-18 16.36.45.png

スクリーンショット 2020-07-18 16.36.55.png

如果已经创建了Cluster,则需要付费,但是最初的一个可以免费创建。
虽然东京不在免费支持的地区,但是设置成新加坡也能正常运行。

点击「创建群集」,等待一段时间直到群集创建完成。
群集创建完成后,以下界面将显示在“沙箱”中。

スクリーンショット 2020-07-18 16.44.50.png

点击「SANDBOX」中的「CONNECT」按钮,进行Cluster设置。

スクリーンショット 2020-07-18 16.49.15.png

点击「添加不同的IP地址」,在IP地址栏中输入「0.0.0.0/0」。
※「0.0.0.0/0」意味着可以访问所有主机和任意目标。
通过设置此项,可以从多个服务器访问该集群。

在数据库中设置用于使用的用户名和密码。
由于IP地址设置为“0.0.0.0/0”,因此需要通过用户名和密码来限制访问。

设定连接方式。

スクリーンショット 2020-07-18 16.53.10.png

在设置“从我的应用程序连接”之前,如果你在MongoDB Compass中连接到数据库,就可以查看并确认已连接应用程序的数据库内容,非常方便。

・「MongoDB Compass」是MongoDB官方提供的用于MongoDB的图形用户界面(GUI)。它与之前在Qiita上发布的「Robo3T」类似(※但Robo3T无法连接到MongoDB Atlas)。

请点击选择「使用MongoDB Compass进行连接」。

设置MongoDB Compass

我没有MongoDB Compass。

スクリーンショット 2020-07-18 17.00.10.png

从MongoDB Atlas下载MongoDB Compass。

打開已下載的MongoDB Copmass應用程式,在「Connect to Host」畫面中設定要連接的主機。
在「Fill in connection Individually」選項中確認連接。

スクリーンショット 2020-07-18 17.08.10.png

スクリーンショット 2020-07-18 17.08.18.png

在默认设置下,可以连接到本地主机上的MongoDB(端口号:27017)。
点击“Connect”按钮即可连接到本地主机的MongoDB。

使用MongoDB Compass连接到MongoDB Atlas。

スクリーンショット 2020-07-18 17.14.03.png

スクリーンショット 2020-07-18 17.15.57.png

复制连接字符串,然后打开MongoDB Compass。从URL中复制“@”之后和“/”之前的部分。

スクリーンショット 2020-07-18 17.16.23.png

将刚刚从MongoDB Atlas复制的内容粘贴到「主机名」中。

请将MongoDB Atlas中设置的用户名和密码粘贴到“用户名”和“密码”栏位中。

在数据库中设置用户名和密码。
由于IP地址设置为「0.0.0.0/0」,需要通过用户名和密码来限制访问。

在这个地方进行设置

スクリーンショット 2020-07-18 17.16.30.png

「更多選項」保持默認設定即可。

スクリーンショット 2020-07-18 17.34.35.png

从MongoDB Atlas侧进行确认。

スクリーンショット 2020-07-18 17.37.02.png

点击「MongoDB Atlas」的「Database Access」选项中的「Edit」,可以重新编辑密码。

スクリーンショット 2020-07-18 17.38.45.png

从「网络地址」选项中,可以确认可请求访问的IP地址,并进行重新设置。

スクリーンショット 2020-07-18 17.39.22.png

スクリーンショット 2020-07-18 17.39.43.png

从「Cluster」的「COLLECTION」中,可以查看MongoDB Atlas上已创建的数据库。

部署到Heroku上

・设置环境变量

创建一个名为「dev.env」的文件,并设置要作为环境变量的值。
当调用环境变量时,请使用「process.env.~」来调用。

PORT=3010
MONGODB_URL=mongodb://127.0.0.1:27017/task-manager-api

・「PORT:」应用程序运行的端口设置。
当设置为「PORT=3010」时,在Heroku部署后将使用Heroku提供的端口,其他情况下将使用3010端口启动应用程序。

※代码部分的描述
· index.js

const port = process.env.PORT 

・「MONGODB_URL:」是MongoDB的连接设置。
用于存储连接到MongoDB数据库的地址。

※代码编写
·mongoose.js

const mongoose = require('mongoose')


mongoose.connect(process.env.MONGODB_URL, {
  useNewUrlParser: true, 
  useUnifiedTopology: true,
  useFindAndModify: false
});

在程序代码中,当存在不希望被外界访问的内容时的处理方式。

暗号化キー(JWT_SECRET)を設定します。
コードの該当箇所には、データを暗号化するためのキーが明記されています。
キーは「thisisaseacretkey」ですが、このままコードに書き込み、gitやHerokuにデプロイすると、暗号化キーが見えてしまい、セキュリティ上問題が生じます。

将密钥设置为环境变量。
在”dev.env”文件中

JWT_SECRET=thisisaseacretkey

对于加密,将密钥直接输入的部分的代码描述为”process.env.JWT_SECRET”。

请给我打开窗户。

请帮我打开窗户。

const sgMail = require('@sendgrid/mail')

sgMail.setApiKey(process.env.SENDGRID_API_Key)

请将以下内容用中文进行改写,只需要提供一种选项:

将代码部署至Github。

请用中文将以下句子进行翻译:

在Heroku上创建一个应用程序


在前往「git push heroku master」以前,执行环境设置。

利用「heroku config」指令,进行环境变量的设定!

設定Heroku的環境變數。

在终端机上,

heroku config:set key=value

通过键入这条命令来设置环境变量。

herkou config:unset key

可以删除环境变量。

heroku config

那么,可以查看已设置的环境变量列表。


– 配置「JWT_SECRET」

heroku config:set JWT_SECRET=thisisaseacretkey

请配置 “MONGODB_URL”

需要获取MongoDB Atlas提供的连接字符串!

スクリーンショット 2020-07-19 10.38.35.png

从 Cluster 的「CONNECT」中选择「Connect your Application」。

スクリーンショット 2020-07-19 10.39.53.png

删除复制的地址,并输入初始设置的数据库密码,然后输入要连接的数据库名称。

複製已編輯的內容

在终端上

heroku config:set MONGODB_URL='先ほどコピーしたアドレス'

执行

・”端口”
端口是由Heroku默认提供的环境,无需进行设置。

请用中文将以下内容重新表达,只需要一种选项:

・将应用部署到Heroku上

git push heroku maser

使用MongoDB Compass查看数据库。

スクリーンショット 2020-07-19 10.49.57.png

使用MongoDB Compass从刚刚创建的“可以从MongoDB Atlas访问的数据库”进行访问。

从这里,可以查看连接到Heroku部署的应用程序的数据库。

bannerAds