本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个nod项目实战教程实战。写教程一方面在自己写的过程中需要考虑更多的东西,另一方面希望能对nod入门者有一些帮助。
相信大多数跟随前面一章教程来到这一章的读者大多分成两类:
第一类是知道nod,想学习nod,但是英文匮乏或者网上教程不给力,希望有一个全面一点的教程入门的;第二类应该是nod入门,但是之前使用的不是类似MongoDB这种非关系型数据库,想学习一下的。
从我个人的角度看来,我希望自己前一段时间关于前端和后端的协同开发经验能够得到提炼和分享。
Nodjs简介
Nod.js是一个基于ChromJavaScript运行时建立的一个平台,用来方便地搭建快速的易于扩展的网络应用。Nod.js借助事件驱动,非阻塞I/O模型变得轻量和高效,非常适合运行在分布式设备的数据密集型的实时应用。
对于不熟悉JavaScript的读者来说,上面的概念可能并不是很亲切,但其实nod作为一个平台,他的很多特性基本上就是JavaScript本身的特性。本文假设你对JavaScript有一定的了解,对于上面的概念给出本人自己的解释。
我想首先介绍一下宿主环境这个概念。一门语言在运行的时候,需要一个环境,叫做宿主环境。对于JavaScript,宿主环境最常见的是wb浏览器,浏览器提供了一个JavaScript运行的环境,这个环境里面,需要提供一些接口,好让JavaScript引擎能够和宿主环境对接。
JavaScript引擎才是真正执行JavaScript代码的地方,常见的引擎有V8(目前最快JavaScript引擎、Googl生产)、JavaScriptcor。JavaScript引擎主要做了下面几件事情:(1)一套与宿主环境相联系的规则;()JavaScript引擎内核(基本语法规范、逻辑、命令和算法);()一组内置对象和API;(4)其他约定。
但是环境不是唯一的,也就是JavaScript不仅仅能够在浏览器里面跑,也能在其他提供了宿主环境的程序里面跑,最常见的就是nodjs。同样作为一个宿主环境,nodjs也有自己的JavaScript引擎V8。根据官方的定义Nod.jsisaplatformbuiltonChrom’sJavaScriptruntimforasilybuildingfast,scalablntworkapplications
因此我们可以这么理解nod,它不是一门语言,而是一个平台。nod是JavaScript运行的一个宿主环境,它提供了一些接口,能够让JavaScript引擎与这个宿主环境对接。真正执行JavaScript代码的是JavaScript引擎,也就是V8引擎,这个引擎值Googl生产的,是当前最快的JavaScript引擎,没有之一。
Nodjs特性解析
到现在为止我们就知道了Nodjs的真面貌,但是还不清楚它的几个特点。Nodjs的这些特点,也可以说是JavaScript的特点,毕竟Nodjs只是一个平台,而执行的代码,都是JavaScript代码。所以我斗胆尝试解释JavaScript/Nodjs的这几个特点,如有错误,非常欢迎指出。
同步与异步
在JavaScript里面的调用分成两种,一种是同步调用,一种是异步调用。简单的区别就是,调用的时候能够立马得到结果的就是同步调用,不能立马得到结果的就是异步调用。同步非常好理解,一个简单的数学运算就是同步调用。
异步的话,可以举一个常见的例子,一篇文章可能有很多很多评论,在页面加载好的时候,只显示前面几条,如果用户想