DAY17-MERN

mern.png

前言:

在大致介绍完React的特性後,我们要延伸聊聊用React写网页时,最好用的前後端架构,MERN。

MERN其实是由四个不同的东西,各取第一个字母拼凑出来的简称,而这四个元件分别是:

M:MongoDB

E:Express

R:React

N:Node.js

後面两个我们前几天都大概提到过了,那M和E又是用来做什麽的呢?

首先MongoDB是一种文件导向的资料库管理系统,用C++等语言撰写而成,以解决应用程序开发社群中的大量现实问题。和我们前面介绍过的SQL架构不太一样,属於NoSQL,但和一般翻译的非关联性资料库其实不太一样,这个No其实是Not only的意思。其储存资料的方式多用json格式,这些特点在我们之後实作都可以直接理解。

至於Express,我们直接看看官方的doc:

Express是最受欢迎的Node web框架,还是其他许多流行的Node web框架的底层库,它提供:

  • 替不同HTTP Method、不同URL路径的requests编写不同的处理方法
  • 透过整合「画面」的渲染引擎来达到插入资料到样板中产生response
  • 设定常见的web应用设定,例如:连线用的port和产生response的样板位置
  • 在request的处理流程中增加额外的「中间层」进行处理

虽然Express本身非常简单,但开发者们已经创造相容的中间层套件来解决大部份web开发的问题,这些套件能处理cookies, sessions,登入,URL参数,POST资料,安全标头等等。

那这里阿森大概画了一张MERN常用的架构图,可以看到前端应用的部分是交由架在node.js环境中的React负责;再来由後端的Express透过API和资料库,也就是MongoDB做连结,接下来就让我们开始实作吧!

IMG_D169DECC2CEB-1.jpeg

MongoDB atlas:

这里阿森选择用MongoDB atlas,因为他们有提供512MB的免费空间、有大量的Sample Data可以做测试,最重要的是还有Realm功能,可以让我们直接把资料库架设在他们的服务器上!同样也是512MB的免费空间。

而开始使用的步骤就是到他的网站注册,看你要创建一个新的或是直接使用GOOGLE都可以!
https://www.mongodb.com/cloud/atlas/lp/try2?utm_source=google&utm_campaign=gs_apac_taiwan_search_core_brand_atlas_desktop&utm_term=mongodb&utm_medium=cpc_paid_search&utm_ad=e&utm_ad_campaign_id=12212624371&gclid=Cj0KCQjwkbuKBhDRARIsAALysV6xYnTgY-D_-qqW4TtPF0rHmAZWZlRluPHQgdNh4JEsVwgaA5MesnoaAmx2EALw_wcB

登入之後创建一个新的project,都顺利的话会到这里:

之後我们Build a Database,专案选最右边的512mb free,服务器我是选google cloud在taiwan的选项。

这时应该会跳到这个画面:

截图 2021-09-25 下午8.23.05.png

接着我们进行Connect的动作!让我们按下Connect按钮。

截图 2021-09-25 下午6.03.58.png

按下Add Your Current IP Address→Add IP Address。

再来新增一个使用者名称和密码。

最後按Create Database User後,这个步骤就完成了!

截图 2021-09-25 下午6.07.07.png

现在我们按下Choose a connection method。

选择connect your application:

截图 2021-09-25 下午8.00.38.png

出现这个画面就表示ok了。

接下来我们直接进入Realm页面,我打算将後端直接架在这里。

所以我们进入Realm,点选左边的Third Party Service,按Add a Service,选择HTTP的Service,这样就表示我们会使用http来进行之後的api。

截图 2021-09-25 下午8.31.04.png

现在我们要按Add incoming Webhook(),也就是建立这个服务器的各种api方法。
那我们先建立一个POST的api,我就取叫testPost,选好点选Save Draft,之後会跳到Function的编辑页面,也就是编辑POST api的地方:

截图 2021-09-28 下午10.39.44.png

如果今天要写GET或PUT...etc都是在这边!明天我会继续实作api以及示范如何将他和React做连接。

小结:

介绍到这里,我相信大家对MongoDB atlas整体都有一定的了解了,如果本身就有在写api只是不知道有这麽一个好用的工具的话,相信这篇文章可以帮助到你!
接下来我们会继续介绍api的写法以及如何连线到React前端。
那就明天见啦!


<<:  第二十四天:使用 TeamCity 监看覆盖率变化

>>:  Day 15 - 将 COMPANY 後台储存资料提取後,送至 Certificat 前台渲染画面 - 相簿资料渲染 - ASP.NET Web Forms C#

[Day01] Flutter GetX 前言 x 建专案

Hi 大家好! 我是Clark, 2018年踏上了iOS App的学习与开发, 因缘际会接触了Flu...

IOS Swift 什麽是Closure?不能只会func吗?

前言: 又到了发文的时间了,最近我的屁股一直长疔子真的好痛,有人知道要怎麽治标吗,一直跪着打程序也不...

为何与如何创业?

为什麽要创业? 创业的过程中往往会自我怀疑,为什麽自己要创业?自己凭什麽成功等等 其实在做目前项目...

Day 05 : 操作基础篇 2 - 认识「设定选单」与我的设定建议

前言 这是 Obsidian 使用教学 — 基础篇的第 2 篇文章。 在上一篇我提到了: 下载与安装...

[Day06] swift & kotlin 入门篇!(4) 基础语法-转型与合并使用

转型与连结 在JS中, 所有的转型与连结都是无感的 也因为太方便太无感 常常会跑出意外的结果 例如 ...