mean堆栈_MEAN堆栈教程:MEAN堆栈入门

mean堆栈

我们大多数人应该知道LAMP的缩写,用于描述由Linux,Apache Web服务器,MySQL数据库服务器以及PHP,Perl或Python组成的Web服务堆栈。

但是在过去的几年中,另一个Web堆栈的首字母缩略语逐渐流行:MEAN-使用MongoDB NoSQL数据库,Express,Angular和Node.js的堆栈。

[来自InfoWorld的要点: NoSQL恩怨匹配:MongoDB与Couchbase Server综述:MongoDB学习了许多很酷的新技巧MongoDB安全性的基本指南 如何在.Net中使用MongoDB | 通过InfoWorld大数据和分析报告时事通讯深入了解分析和大数据。 ]

MEAN是JavaScript作为服务器端语言兴起的一种体现,因为与所有这些组件最一致的元素是JavaScript。 Node.js提供了JavaScript运行时; Angular和Express是用JavaScript编写的; 和MongoDB的数据结构表示为JSON(JavaScript对象表示法)实体。

MEAN的吸引力很大一部分是这种一致性。 如果在堆栈的各个级别使用相同的语言和许多相同的语言概念,则开发人员可以更轻松地一次掌握整个堆栈。

在本文中,我们将遍历MEAN堆栈的组件,并展示如何使用这些组件来建立基本的应用程序。

什么是MEAN堆栈?

大多数MEAN堆栈具有所有四个组件-数据库,前端,后端和执行引擎。 这并不意味着堆栈由这些元素组成,而是它们构成了核心。

MongoDB

与其他NoSQL数据库系统一样,MongoDB使用无模式设计。 数据以JSON格式的文档进行存储和检索,该文档可以具有任意数量的嵌套字段。 这种灵活性使MongoDB非常适合于需求快速变化的快速应用程序开发。

与任何其他数据库解决方案一样,您将需要某种中间件才能在MongoDB和JavaScript组件之间进行通信。 在MEAN堆栈中执行此操作的一种常见方法是使用Mongoose 。 该软件包不仅提供连通性,而且还提供对象建模,应用程序侧验证以及您不希望为每个新项目重新发明而烦恼的许多其他功能。

Express.js

Express可以说是Node.js使用最广泛的Web应用程序框架。 Express本身仅提供少量基本功能,更好地使其保持轻巧和高性能,并通过插件提供了任何更高级别的功能。

因为Express是故意最小的,所以它没有太多概念上的开销。 Expressjs.com上教程可以提供基本的快速概述。

角度的

Angular (以前称为AngularJS )用于为您的应用程序提供前端。 它使用浏览器JavaScript来格式化HTML模板中服务器提供的数据的格式,因此可以将呈现网页的许多工作分担给客户端。 许多单页Web应用程序都是以Angular为前端构建的。

关于Angular的一个重要警告:开发人员通过使用TypeScript而不是JavaScript进行编写来使用它。 对于某些人来说,这略微违反了MEAN堆栈的基本概念之一-JavaScript在堆栈中随处可见且仅在堆栈中使用。 另一方面,TypeScript是JavaScript的近亲,因此两者之间的过渡不像其他语言那样令人讨厌。

为了深入探究Angular,InfoWorld的Martin Heller为您服务。 在他的Angular教程中,他将引导您完成创建现代Angular应用程序的基础知识。

Node.js

Node是同时支持Express和AngularJavaScript运行时,以及您决定添加到MEAN堆栈中的任何其他JavaScript代码,库或包。 要深入了解Node, 请查看Martin Heller的解释器

平均堆栈设置

当然,MEAN不是一种产品,而是它们的集合。 因此,您可以采用多种不同的方法来安装所有组件。

但是,在开始实际创建MEAN堆栈的工作之前,花点时间考虑一下您的开发环境。 如果尚未设置JavaScript开发环境,则可以考虑使用Visual Studio Code 。 Visual Studio Code可在Windows,Mac或Linux上运行,并且结合了完整的功能集和极大的易用性。 Visual Studio Code具有JavaScript和Node.js扩展,并通过插件的方式为AngularExpress提供了大量第三方支持。 这是一个很好的默认选择。

MEAN堆栈设置选项1:使用多合一安装程序

一些第三方创建了安装程序,用于解压缩和配置所有必需的组件。 Bitnami提供了一个这样的安装程序,该程序安装了所需的所有主要组件— Node.js运行时,MongoDB的实例以及支持MEAN堆栈的基本实例所需的NPM软件包。

其他安装程序假定您已经安装了MongoDB和Node.js,并专注于站立Angular和Express组件。 Meanjs.org就是这样一种安装程序。

MEAN堆栈设置选项2:使用VM或容器映像

第二种选择是使用虚拟机映像或Docker(后者效率更高)来获取每个堆栈并运行它。 为此,您需要用于MongoDB,Angular和Express的Docker映像。

您可以使用Docker Compose和Docker swarm模式集成这三个模块( 请参阅本示例 ); 这是在一个机器上测试和开发一个简单实例的好方法。 有关使用Kubernetes进行更复杂的部署(更适合于生产), 请参见以下示例

支持将容器用于MEAN应用程序的一个有力论据是,它允许您精确地指示堆栈中所有组件的版本控制-不仅是JavaScript框架,还包括MongoDB和Node运行时。 如果您的应用程序依赖于与特定版本相关联的任何组件中的行为,那么这至关重要。

MEAN堆栈设置选项3:使用自动化系统

第三种可能性(也有助于保留版本控制)是使用自动化系统。 例如,Chef有一个用于实例化“ MExN”堆栈的第三方配方 。 Puppet具有使用Amazon EC2作为目标的MEAN堆栈的部署配方这是在Ubuntu上部署MEAN堆栈的Ansible食谱示例

上面的示例还不完整,但是如果您使用的是自动化系统,则可以以它们为基础并自定义它们。

MEAN堆栈设置选项4:自己动手,手动设置

最后,有一个困难但有益的方法:将MEAN堆栈中的每个组件剔除掉,站起来,然后将所有组件自己连接在一起。 这是困难的,因为每个组件都涉及不同的过程,但是却很有意义,因为逐步执行所有步骤将使您可以直观地了解和理解MEAN堆栈的各个部分是如何组合在一起的,尽管可以逐个尝试。 接下来,让我们逐步完成此手动设置过程。

MEAN堆栈手动设置逐步

如果您希望或需要手动设置MEAN堆栈的组件,则需要遵循一定的顺序。 您需要从两个最基础的元素MongoDB和Node.js开始,然后在它们之上添加Angular和Express。

对于您自己的开发和学习,完全手动设置MEAN堆栈可能只需要执行一次。 一旦掌握了窍门,就应该自己帮助学习如何使用上一节中介绍的其他技术之一来构建堆栈。 就是说,知道堆栈的每个部分如何组装的细节并没有什么坏处。

安装MongoDB

MongoDB的安装程序可用于所有主要平台:

  • Linux :Red Hat,Ubuntu,Debian,SUSE和Amazon Linux AMI均提供.deb.rpm 软件包 。 其他Linux发行版也可能通过其软件包管理器提供了版本。
  • MacOS :您可以通过下载并运行二进制安装程序使用Homebrew软件包管理器 ,在MacOS上安装MongoDB。 Homebrew为您节省了一些步骤,还为您提供了一种自动方式来使MongoDB保持最新。
  • Windows :MongoDB为Windows提供了一个MSI安装程序,并带有一个向导,可引导您完成最常见的安装选项。

每个安装程序的以上链接应提供有关如何在每个平台上完成MongoDB设置的一些基本信息。

在此步骤中,还有两点值得注意:

  • 如果您还没有使用MongoDB及其隐喻的经验,特别是如果您一般没有使用NoSQL数据库的经验,请停止阅读,并花一些时间通过对版本的深入研究来了解它4.0 。 如果您对数据库支持的应用程序堆栈的经验仅限于SQL数据库,则需要MongoDB及其特质的一些背景知识。
  • MongoDB具有因配置不当而引起的安全问题的历史。 默认情况下,MongoDB具有很少的安全性-非常适合快速启动和运行开发实例,但是对于那些急于投入生产的人来说是一个危险。 确保MongoDB是之前甚至想到锁定有关使用不仅仅是你的任何系统上部署它。

安装Node.js

同样,Node.js在所有平台上都提供了相对容易的安装:

安装Node.js时,请确保安装过程还包括NPM(Node的程序包管理器)。 通常是这种情况,但是在安装后,请通过键入npm -v再次检查您是否具有NPM。

安装了MongoDB和Node.js之后,您现在就可以认真创建MEAN应用了。

MEAN堆栈示例应用

从理论上讲,创建MEAN应用程序的下一步将涉及安装Angular,Express和Mongoose,并手动连接它们之间的交互。

更快的方法是使用许多预构建的应用程序模板之一。 这些为您提供了基本MEAN应用的源代码,您可以将其部署到位,然后根据需要进行编辑。

作为使用Angular CLI构建应用程序的教程的一部分,开发了一个您可以开始使用的示例应用程序 。 它为您提供了一个简单的CRUD(创建,读取,更新,删除)数据库应用程序,您可以根据需要对其进行修改。 它还提供了一个很好的示例,说明了主要JavaScript组件如何在应用程序项目中实现:

  • 对于Express,项目根目录中的app.js文件包含应用程序路由逻辑和基本数据库连接。 每个子路由在route / book.js中进行了描述。
  • 对于MongoDB,Mongoose使用的数据库模型位于models / Book.js中。
  • 对于Angular, src目录包含项目的Angular部分的源代码,这些源代码以TypeScript编写。 在src / app及其子目录中可以找到每个视图HTML。

从这样的示例应用程序开始的另一个好处是,该应用程序可能会采用相对现代JavaScript开发技术。 例如,本示例使用Angular CLI ng作为其运行应用程序的主要界面。 它不使用gulp或grunt之类的工具。 简而言之,在继续进行开发时,需要一套较小且扩展较少的工具来开始使用。

MEAN堆栈的后续步骤

从这里开始的下一步是完成您设置的内容并使其成为自己的:

  • 自定义Express路由以创建您自己的响应-不仅重命名现有路径,还使用与之关联的新代码开发全新的路径。
  • 更改由Mongoose定义的架构以创建新的数据对象,并编写新代码以与这些对象接口。 实验一下Mongoose如何处理不同的数据类型 ,例如日期或数组。
  • 使用Angular的工具集从项目的TypeScript生成新的前端代码,并通过逐步修改代码来获得TypeScript的工作经验。

翻译自: https://www.infoworld.com/article/3313667/mean-stack-tutorial-get-started-with-the-mean-stack.html

mean堆栈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值