Nodejs是个在服务器动可以解析和执行JavaScript代码的运行环境,也可以说是一个运行时平台,仍然使用JavaScript作为开发语言,但是提偶了一些功能性的API,例如文件操作和网络通信API等。
Nodejs是由 Ryan Dahl 于2009年5月推出的最初版本,Ryan Dahl 是一名专注于实观高性晚Web服务器的优化专家,他将Chrome浏览器的V8引擎单独移植出来,在此基础之上,为其上层的JavaScnpr提供了友好的API,供开发人员使用,而且完全开源免费。
Node.js的特点和优势
Node.js作为一门新兴的后台语言平台,旨在帮助程序员快速构建可伸缩的应用程序。自发布以来,广受开发人员关注,Node.js之所以这么受欢迎归功于它的一些吸引人的特点。
具体如下:
(1)它是一个JavaScript 运行环境:Node.js作为运行环境可以让JavaScript 脱离浏览器,在服务器端单独执行,如果客户端和服务器端使用相同的开发语言,可以在很大程度上达到客户端和租务器端代码的共用。
(2)依赖于Chrome V8 引擎进行代码解析:Chrome V8负责在非浏览器解析情况下解析JavaScript 代码。
(3)事件驱动(Event-Driven):对于事件密动来说,在学习JavaScript的初级阶段。都会接触到事件,如onclick、onload等,这些事件通常会绑定在某个页面元素上,然后为其指定事件处理函数,当事件被触发时才会执行相应的处理函数。可以说这样的事件处理机制就是标准的事件驱动机制。
(4)非阻塞I/O(non-blocking L/O):提到非阻塞I/O,首先有必要了解一下阻塞L/O,I/O(Input/Output)表示输入/输出操作,阻室I/O可以理解为被阻塞了的输入/输出操作。在服务器端有很多会涉及阻塞LO的操作,例如在读取文件的过程中,需要等待文件读取完毕后才能继续执行后面的操作,Node.js中使用事件同调的方式来解决这种阻塞l/O的情况,避免了阻塞I/O所需的等待,所以说它具有非阻塞l/O的特点。
(5)轻量,可伸缩,适于实时数据交互应用:在Node.js中,Socket可以实现双向通信,例如聊天室就是实时的数据交互应用。
(6)单进程,单线程:进程就是一个应用程序的一次执行过程,它是一个动态的概念:而线程是进程中的一部分,进程包含多个线程在运行。单线程就是进程中只有一个线程,阻塞1/O模式下一个线程只能处理一个任务:而非阻塞1/O模式下,一个线程永远在处理任务,这样CPU的利用率是100%,Nodej采用单线程,利用事件驱动的异步编程模式,实现了非阻塞I/O。
如何学习node.js
Node.js全套入门教程,nodejs最新教程含es6模块化+npm+express+webpack+promise等
资料链接:https://pan.baidu.com/s/1ujshViLjZOsD5jkU90WjfA
提取码:5yv2
课程内容:
1.Node.js 常用内置模块的用法
2.使用 npm 管理依赖包、开发自己的 npm 包
3.express 的常见用法
4自定义 express 中间件
5 cors、jsonp 原理
6 MySQL 数据库的安装和使用
7 常用 SQL 语句的使用
8 Cookie + Session、JWT 身份认证
9 从0到1开发 API 接口项目