当前位置: 首页 > 后端技术 > Node.js

翻译-《JavaScript Everywhere》第10章部署我们的API(^_^)

时间:2023-04-04 00:36:03 Node.js

翻译|《JavaScript Everywhere》Chapter10DeployingourAPI(^_^)写在最上面大家好,我是毛小友,是一名前端开发工程师。翻译一本英文技术书籍。为了提高大家的阅读体验,对句子的结构和内容进行了微调。如果大家发现本文有什么不妥之处,或者有什么意见和建议,可以在评论区留言,或者加我的微信:code_maomao,欢迎交流,互相学习。(σ???)σ..:*☆哎哟!第10章部署我们的API想象一下,每次用户想要通过我们的API创建、阅读、更新或删除笔记时,他们必须只通过个人计算机。目前,这就是我们的API的工作方式,因为它仅在我们的个人计算机上运行。我们可以通过将应用程序部署到Web服务器来解决这个问题。在本章中,我们将分两步完成:首先,我们将设置一个我们的API可以访问的远程数据库。其次,我们将API代码部署到服务器并连接到数据库。完成这些步骤后,我们可以使用从任何联网的计算机访问API,包括将要开发的Web、桌面和移动界面。托管我们的数据库第一步,我们将使用托管数据库解决方案。对于我们的Mongo数据库,我们将使用MongoDBAtlas。这是一个由Mongo支持的组织支持的完全托管的云产品。此外,他们提供的免费体验非常适合我们的初始部署。让我们来看看部署到MongoDBAtlas的步骤。首先,浏览到mongodb.com/cloud/atlas并创建一个帐户。创建帐户后,系统会提示您创建数据库。在此屏幕中,您可以管理沙箱数据库的设置,但我建议现在使用默认设置。它们是:Amazon的AWS作为数据库主机,还有Google的CloudPlatform和Microsoft的Azure。具有“免费套餐”选项的最近区域。Cluster层,默认值为“M0sandbox(sharedRAM,512MBstorage)”其他设置,我们可以保持默认。集群名称,我们可以保持默认。从此处单击“创建集群”,此时Mongo将花费几分钟时间来设置数据库(图10-1)。图10-1。MongoDBAtlas数据库创建屏幕接下来,您将看到“集群”页面,您可以在其中管理您的个人数据库集群(图10-2)。图10-2MongoDBAtlasCluster在Cluster界面,点击Connect,会提示设置连接安全。第一步是将您的IP地址列入白名单。由于我们的应用程序将有一个动态IP地址,您将需要使用0.0.0.0/0将其打开到任何IP地址。将所有IP地址列入白名单后,您需要设置安全的用户名和密码才能访问数据(图10-3)。图10-3。MongoDBAtlasIP白名单和用户账号管理完成IP白名单和创建用户账号后,您需要选择数据库的连接方式。在这种情况下,它将是“应用程序”连接(图10-4)。图10-4。在MongoDBAtlas中选择连接类型从这里,您可以复制我们将在生产中使用的连接string.env文件(图10-5)。图10-5。MongoDBAtlas的数据库连接字符串Mongo密码MongoDBAtlas对密码中的特殊字符进行十六进制编码。这意味着如果您使用(并且应该!)任何非字母或数字值,则在将密码添加到连接字符串时需要使用该代码的十六进制值。网站ascii.cl为所有特殊字符提供了相应的十六进制代码。例如,如果您的密码是Pizz@2!。您将需要编码@和!特点。您可以使用%后跟十六进制值。生成的密码将为Pizz%402%21。随着我们的MongoDBAtlas托管数据库的启动和运行,我们现在为我们的应用程序提供了一个托管数据存储。在下一步中,我们将托管我们的应用程序代码并将其连接到我们的数据库。部署我们的应用程序部署设置的下一步是部署我们的应用程序代码。出于本书的目的,我们将使用云应用程序平台Heroku。我之所以选择Heroku,是因为它具有出色的用户体验和免费的免费套餐,但其他云平台,如AmazonWebServices、GoogleCloudPlatform、DigitalOcean或MicrosoftAzure都为Node.js应用程序提供了替代托管环境。在我们开始之前,您需要访问Heroku的网站并创建一个帐户。创建帐户后,您需要为您的操作系统安装Heroku命令行工具。对于macOS,您可以使用Homebrew安装Heroku命令行工具,如下所示:$brewtapheroku/brew&&brewinstallheroku对于Windows用户,请访问Heroku命令行工具指南并下载相应的安装程序。项目设置安装好Heroku命令行工具后,我们就可以在Heroku网站上设置项目了。单击新建→创建新应用程序(图10-6)。图10-6。这里是HerokuNewApplication对话框,系统会提示您为您的应用程序指定一个唯一的名称,然后单击“CreateApplication”按钮(图10-7)。继续,无论在哪里使用YOUR_APP_NAME,您都会看到限定名称。图10-7。提供唯一的应用程序名称现在我们可以添加环境变量。与我们使用.env本地文件的方式类似,我们可以在Heroku的Web界面中管理我们的生产环境变量。为此,单击“设置”,然后单击“显示配置变量”按钮。在此屏幕中,添加以下配置变量(图10-8):NODE_ENVproductionJWT_SECRETA_UNIQUE_PASSPHRASEDB_HOSTYOUR_MONGO_ATLAS_URL图10-8。Heroku的环境变量已经配置好,我们可以部署我们的代码了。如何部署现在,我们准备将代码部署到Heroku的服务器上。为此,我们可以在终端应用程序中使用简单的Git命令。我们将Heroku设置为远程端点,然后添加并提交更改,最后将代码推送到Heroku。为此,在终端应用程序中运行以下命令:你应该在终端中看到输出。完成后,Heroku将使用package.json文件中的运行脚本在其服务器上运行我们的应用程序。一旦测试成功部署了我们的应用程序,我们就可以向远程服务器发出GraphQLAPI请求。GraphQLPlaygroundUI在生产环境中默认禁用,但我们可以在终端应用程序中使用curl测试应用程序。要运行curl请求,请在终端应用程序中输入以下内容:$curl-XPOST-H"Content-Type:application/json"--data'{"query":"{notes{id}}"}'https://YOUR_APP_NAME.herokuapp.com/api如果测试成功,我们将收到一个空注释数组的响应,因为我们的生产数据库还不包含任何数据:{"data":{"notes":[]至此,我们已经部署了应用程序!结论在本章中,我们使用云服务来部署数据库和应用程序代码。MongoDBAtlas和Heroku等服务使开发人员能够启动小型应用程序并将它们扩展到从业余项目到高流量业务的任何地方。通过部署我们的API,我们已经成功开发了应用程序堆栈的后端服务。在接下来的章节中,我们将重点关注应用程序的UI。如果有什么不明白的地方,请指正。如果觉得还可以,请点赞、收藏或分享,希望能帮助到更多的人。

猜你喜欢