参考链接: Node.js-Web模块

在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 框架结构内的现有代码片段都更容易。

本文选自新书《Node.js+MongoDB+Angular Web开发:MEAN全栈权威指南》,电子工业出版社10月出版。

本书始于对每种技术都提供简洁、清晰的教程,然后迅速转向建立实用的Web应用程序。你将学习如何使用Node.js和MongoDB构建更具可伸缩性的高性能站点,以及如何利用Angular的创新MVC方法构建更有效的页面和应用程序,以及如何综合这三个利器共同实现出色的下一代Web解决方案。

[转载] 了解Node.js-to-Angular 套件组件相关推荐

  1. 转载:Node.js入门系列——《深入浅出Node.js》

    作者:田永强 日期:2011-12-02 完整版 前言: Node.js从2009年诞生至今,已经发展了两年有余,其成长的速度有目共睹.从在github的访问量超过Rails,到去年底Node.jsS ...

  2. 【转载】Node.js 教程(菜鸟教程系列)

    很好的一篇教程:Node.js 教程 简单做下笔记 概述 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立 ...

  3. 如何在Windows上安装Angular:Angular CLI,Node.js和构建工具指南

    In this tutorial, we'll learn how to install Angular CLI in Windows and use it to create an Angular ...

  4. node.js发送邮件

    前提: 1.安装node.js 2.安装nodemailer组件:npm install nodemailer --save 将如下脚本保存到mail.js,然后执行命令:node mail var ...

  5. Node.js入门 - 永恒的Hello World!

    本文自theprojectspot.com翻译而来,文章原作者为Lee Jacobson, 已经作者授权翻译用于非商业用途.原文地址:猛戳这里进入 介绍 这是我的关于Node.js系列入门教程的第一篇 ...

  6. Node JS环境设置– Node.js安装

    In my previous post, we have discussed about "Introduction to Node JS Platform". Now we ha ...

  7. nvm安装node.js

    1.介绍 nvm 是 nodejs 的版本管理工具,可以在一个环境中同时安装多个 nodejs 版本(和配套的 npm 版本),并随时切换.好处是,开发调试不同 nodejs 应用变得更省心,随时切换 ...

  8. node.js 初体验(转载)

    最近学习游戏开发,后台技术在研究node.js,发现这篇不错的入门帖子,转下: 转自聂微东, 出处:http://www.cnblogs.com/Darren_code/ 最近写的文章收到许多朋友的反 ...

  9. node.js 组件_使用Node.js和TransloadIt构建用户头像组件

    node.js 组件 在本系列的第一部分中,我们介绍了TransloadIt -一种文件处理服务,专门处理图像,视频和音频. 如果您还没有阅读它,我建议您立即阅读,因为它涵盖了很多背景概念,您需要阅读 ...

最新文章

  1. 用C++的random_shuffle()函数打乱int数组顺序
  2. 手把手快速实现 Resnet 残差模型实战
  3. ldap - 设置一个基本的OpenLDAP Server
  4. 关于RGB屏调试的一些知识(转)
  5. LeetCode 24 Swap Nodes in Pairs (交换相邻节点)
  6. ECMAScript6 模版字符串
  7. 多核程序设计的相关基础知识----以误差扩散算法为例
  8. Kubernetes 1.14.1快速升级
  9. LoadRunner监控SQLServer
  10. 【Python脚本进阶】2.4、conficker蠕虫(终)
  11. 从微信服务通知进入小程序显示环境加载失败,请稍后再试
  12. CSR蓝牙芯片进测试模式方法
  13. 如何将硬盘系统完整拷贝到另一硬盘?
  14. 【今日CV 计算机视觉论文速览】Wed, 27 Feb 2019
  15. java utility 是什么_Java Utility类代码示例
  16. srand( 在php,PHP srand( )用法及代码示例
  17. JVM结构和JVM的架构模型以及JAVA生命周期介绍
  18. 蓝桥旧题_剪邮票问题
  19. 使用集成学习提升机器学习算法性能
  20. 服务器开机后,自动启动某程序,并且打开Google浏览器,全屏展示

热门文章

  1. 【NOIP1997】【Luogu2626】斐波那契数列(枚举,质因数分解)
  2. SpringBoot→请求参数、返回参数、文件上传、拦截器、异常处理、定时任务、异步任务
  3. SQL Server高级查询之常见数据库对象(触发器)第五章节
  4. 管理系统中的计算机应用答案,《管理系统中计算机应用》试卷答案
  5. Killer Problem
  6. jquery赋值节点
  7. matlab 矩阵中的矩阵的特征值,当矩阵的所有条目都是变量时,如何在matlab中找出矩阵的特征值?...
  8. 主子表对应的字段_Power Pivot针对表筛选的函数及差异
  9. bzoj 4247: 挂饰(DP)
  10. 决策单调性Ⅱ:斜率优化(1597: [Usaco2008 Mar]土地购买)