了解Node.js-to-Angular 套件组件

管理员账号

2018-11-07

Node.js-to-Angular套件最常见的,并且我们相信也是最好的版本是包括MongoDB、Express、Angular和Node.js 的Node.js-to-Angular 套件。

在Node.js-to-Angular 套件中,Node.js 提供了开发的基础平台。后端服务和服务器端脚本都是用Node.js 编写的。MongoDB 提供了网站的数据存储,但通过一个MongoDB驱动Node.js 模块进行访问。Web 服务器是通过Express 定义的,这也是一个Node.js 的模块。

在浏览器中的视图使用Angular 框架定义和控制。Angular 是一个MVC 框架,在该框架中的模型由JSON 或JavaScript 对象组成,视图是HTML/CSS,而控制器由AngularJavaScript 组成。

上图提供了一个基本的图示,它显示Node.js-to-Angular 套件是如何适合基本的网站/Web 应用模型的。以下各节描述每种技术,以及它们被选为Node.js-to-Angular 套件的一个组成部分的原因。

1 Node.js

Node.js 是一个基于谷歌的V8 JavaScript 引擎的开发框架。因此,Node.js 代码是用JavaScript 编写的,然后由V8 编译为机器码供执行。

你可以用Node.js 编写许多后台服务、服务器端脚本和任何支持Web 应用程序的功能。Node.js 的好处是它各部分都只包含JavaScript,因此,可以方便地从客户端脚本提取功能,然后将其放置到服务器端脚本中。此外,Web 服务器可以在Node.js 平台上作为一个Node.js的模块直接运行,这意味着它比使用其他软件,比方说,Apache 连接新服务或服务器端脚本要更容易。

Node.js 之所以是一个出色的启动框架,有下面几个原因。

JavaScript 端到端:Node.js 的一个最大优点是,它可以让你用JavaScript 同时编写服务器端和客户端脚本。决定把脚本逻辑放置于何处,一直是一件困难的事情。在客户端放太多东西会使客户端变得烦琐而又笨拙,而在服务器端放太多东西又会拖慢Web 应用并使Web 服务器不堪重负。利用Node.js,你可以在客户端上编写JavaScript,并轻松地在服务器上适应它,反之亦然。而且,客户端的开发者和服务器的开发者使用同一种语言。

事件驱动的可伸缩性:Node.js 应用不同的逻辑来处理Web 请求。处理Web 请求时,这些请求都在同一个线程上采用一种基本的事件模型被处理,而不是让多个线程等待处理。这使得Node.js Web 服务器可以用传统的Web 服务器永远不能的方式进行扩缩。

可扩展性:Node.js 有很多的追随者和一个活跃的开发社区。人们正在不断提供新的模块来扩展Node.js 的功能。此外,在Node.js 中安装和包含新的模块是非常简单的,你可以在几分钟内扩展Node.js 的项目来包含新的功能。

快速执行:建立Node.js,并在其中开发是超级容易的。在短短几分钟内就可以安装Node.js,并拥有一个能工作的Web 服务器。

2 MongoDB

MongoDB 是一个灵活的和可伸缩的NoSQL 数据库。Mongo 这个名字来自单词“堆积如山”(humongous)。它基于NoSQL 文档存储模型,这意味着数据在数据库中作为JSON 对象形式被存储,而不是作为关系数据库中传统的列和行存储。

MongoDB 为需要存储诸如用户评论、博客或其他项目数据的高流量的网站提供了出色的网站后端存储,因为它是快速、可伸缩和易于实现的。本书介绍了使用MongoDB 的驱动程序库从Node.js 访问MongoDB。

Node.js 支持多种数据库访问驱动程序,因此数据很容易用MySQL 或其他数据库来存储。但是,下面是MongoDB 真正适合于Node.js 套件的一些原因。

针对文档:因为MongoDB 是针对文档的,数据在数据库中存储的格式接近于你将在服务器端和客户端脚本中处理它们的格式。这消除了把数据从行转换为对象和转换回来的需要。

高性能:MongoDB 是目前性能最高的数据库之一。尤其是在现在,当有越来越多的人与网站进行交互时,具有能够支持大流量的后端是很重要的。

高可用性:MongoDB 的复制模型使得它容易维护可伸缩性,同时又保持高性能。

高可伸缩性:MongoDB 的结构使得它可以很容易地通过在多个服务器上对数据共享实现水平伸缩。

无SQL 注入:MongoDB 是不容易受到SQL 注入攻击的(也就是向Web 表单或从浏览器的其他输入中输入SQL 语句,从而危及数据库的安全性)。这是因为对象被存储为对象,不使用SQL 字符串。

3 Express

Express 模块在Node.js-to-Angular 套件中充当Web 服务器。它运行在Node.js 中,使得其很容易配置、实现和控制。Express 模块扩展了Node.js,它提供几个关键组件来处理Web 请求。这可以让你用短短几行代码实现在Node.js 中运行的Web 服务器。

例如,Express 模块为使用者提供轻松设置连接到目的地的路径(URL)的功能。它也在处理HTTP 请求和响应对象,包括在处理像cookie 和HTTP 标头的方面提供强大的功能。

以下是Express 有价值的功能的部分列表。

路由管理:Express 可以很容易地定义直接绑在服务器上的Node.js 脚本功能的路由(URL 端点)。

错误处理:Express 为“未找到文件”等错误提供了内置的错误处理。

易于集成:一个Express 服务器可以很容易地在现有的反向代理系统,如Nginx或Varnish 之后实现。这使它可以轻松地集成到现有的安全系统。

cookie:Express 提供了简单的cookie 管理。

会话和缓存管理:Express 也能够进行会话管理和缓存管理。

4 Angular

Angular 是由谷歌开发的客户端框架。Angular 提供处理用户在浏览器中的输入,操纵客户端上的数据,并控制如何在浏览器视图上显示元素所需要的所有功能。它是用TypeScript 编写的。Angular 背后的理论是提供一个框架,使得可以很容易地实现使用MVC框架的Web 应用程序。

也可以在Node.js 平台上使用其他JavaScript 框架,如Backbone、Ember 和Meteor。然而,Angular 拥有在写作本书之际最好的设计、功能集和轨迹。下面是Angular 的一些好处。

数据绑定:Angular 利用其强大的范围机制,有一个将数据绑定到HTML 元素的非常干净的方法。

可扩展性:Angular 架构允许你轻松地扩展语言的各个方面,以提供你自己的自定义实现。

整洁:Angular 迫使你编写整洁的、合乎逻辑的代码。

可重用代码:可扩展性和简洁代码的结合,使得易于用Angular 编写可重用的代码。事实上,在创建自定义服务的时候,该语言往往迫使你这样做。

支持:谷歌正把大量资金投入这个项目,这使得它比那些已失败的类似举措更具优势。

兼容性:Angular 基于TypeScript。这使得开始整合Angular 到你的环境和重用在Angular 框架结构内的现有代码片段都更容易。

读者评论

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    2361 407 2 5
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    1887 34 0 1
  • 新书试读员征集

    陈晓猛 2016-12-01

    活动获奖名单公布 恭喜以下10位读者朋友获得本次试读员征集的名额,请私信 陈晓猛 将您的QQ号发给小编,以便加入读者VIP群,给您送出图书! 获奖名单 程续缘 悠悠的一杯茶 313150284@qq.com llaomao 落伍特青年 ...

    陈晓猛 2016-12-01
    688 12 0 0