NodeJs初步了解

一.Node.js简介

在介绍之前,先说下后台语言和前台语言的三点不同:

运行地点(运行在服务器,后台语言一般需要编译成字节码)、运行环境(后台语言需要运行服务区如IIS/tomcat。。前台语言浏览器就足够了)、运行时间(后台语言,收到http上行请求之后运行,然后发出下行响应;而前台语言是在客户端接收到下行响应之后才在客户端电脑执行)

而Node.js是一个可以让JavaScript运行在服务器端的平台,使用V8内核。

什么意思呢?就是说,JavaScript是一个典型的前台语言,在客户电脑中运行。但是2009年, Ryan Dahl 将Chrome浏览器中的V8内核(非常快速的JS引擎),移植到了服务器上,这样就等于说,可以用JS的语法,来开发服务器程序了。

但是,Node.js也有一些特点:

● 非阻塞I/O

● 事件驱动

什么是阻塞?线程在执行中遇到了磁盘读写操作,比如读取一个数据、文件、都叫做I/O. 那么I/O需要花费时间,所以这时操作系统就会剥夺这个线程的CPU控制权,所以这个线程就被阻塞了,后面的语句无法执行。当I/O结束之后,操作系统就会把这个线程的阻塞状态解除,继续后面语句,这种模式就叫做阻塞I/O.

非阻塞I/O,就是不阻塞读取文件。但有一个I/O语句的时候,那么此时只是将这个命令发送给操作系统,而进程将继续执行后面的语句,不被阻塞。当操作系统完成I/O操作的时候,将会以事件的方式,通知这个线程,线程将执行回调函数里面的语句。

所以,Node.js就是服务端语言中的一朵奇葩,采用单线程,非阻塞I/O模式,这就决定了他不适合做计算量大,逻辑较为复杂的程序。

Node.Js适合的类型有

● 数据密集型

投票、考试、站内信、问答社区……

这些系统,都需要大量的读取数据、文件

● 实时交互应用程序

聊天、股票、图文直播、你画我猜…

和HTML5的web socket就搭配的特别好

二.Hello World

Node.js非常好部署,无论是windows还是linux。

https://nodejs.org/download/  从这个网站下载。

三.Express.js

 express和Jquery一样,用来简化Node.js的编程方式

http://www.expressjs.com.cn/

npm就是包管理器,可以通过npm命令,非常方便的下载别人的包。

四.NoSQL

非关系型数据库,没有行、列的概念。用JSON形式的格式,来存储数据。

https://www.mongodb.com/

mongo 芒果数据库。

原文地址:https://www.cnblogs.com/yanchuan/p/6283649.html