nodejs-学习笔记001
2018-03-24 07:48
246 查看
简介
Node.js,或者 Node,是一个可以让 JavaScript 运行在服务器端的平台。它可以让JavaScript 脱离浏览器的束缚运行在一般的服务器环境下,就像运行 Python、Perl、PHP、Ruby程序一样。你可以用 Node.js 轻松地进行服务器端应用开发,Python、Perl、PHP、Ruby 能做的事情 Node.js 几乎都能做,而且可以做得更好。 一句话概括,就是让javascript作为后台服务器的开发语言。
Node.js 不是一种独立的语言
Node.js 也不是一个 JavaScript 框架 [/u]
Node.js 更不是浏览器端的库
Node.js 是一个让 JavaScript 运行在服务端的开发平台
Node.js 不运行在浏览器中
Node.js 是一个让 JavaScript 运行在浏览器之外的平台。它实现了诸如文件系统、模块、包、操作系统 API、网络通信等 Core JavaScript 没有或者不完善的功能。
Node.js 的 JavaScript 引擎是 V8,来自 Google Chrome 项目
Node.js 不运行在浏览器中,所以也就不存在 JavaScript 的浏览器兼容性问题,你可以放心地使用 JavaScript 语言的所有特性。
Node.js 能做的远不止开发一个网站那么简单,使用 Node.js,你可以轻松地开发:
具有复杂逻辑的网站;
基于社交网络的大规模 Web 应用;
Web Socket 服务器;
TCP/UDP 套接字应用程序; 8
命令行工具;
交互式终端程序;
带有图形用户界面的本地应用程序;
单元测试工具;
客户端 JavaScript 编译器。
Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计 。Node.js 使用的是单线程模型,对于所有 I/O 都采用异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行的过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送到事件队列,等待程序进程进行处理。
这种异步事件模式的弊端也是显而易见的,因为它不符合开发者的常规线性思路,往往需要把一个完整的逻辑拆分为一个个事件,增加了开发和调试难度。
Node.js 的架构
CommonJS 规范与实现
为了统一 JavaScript 在浏览器之外的实现,CommonJS 诞生了。CommonJS 试图定义一套普通应用程序使用的API,从而填补 JavaScript 标准库过于简单的不足。CommonJS 的终极目标是制定一个像 C++ 标准库一样的规范,使得基于 CommonJS API 的应用程序可以在不同的环境下运行,就像用 C++ 编写的应用程序可以使用不同的编译器和运行时函数库一样。为了保持中立,CommonJS 不参与标准库实现,其实现交给像 Node.js 之类的项目来完成。图1-5是 CommonJS 的各种实现。
CommonJS 规范包括了模块(modules)、包(packages)、系统(system)、二进制(binary)、控制台(console)、编码(encodings)、文件系统(filesystems)、套接字(sockets)、单元测试(unit testing)等部分。目前大部分标准都在拟定和讨论之中,已经发布的标准有Modules/1.0、Modules/1.1、Modules/1.1.1、Packages/1.0、System/1.0。
Node.js,或者 Node,是一个可以让 JavaScript 运行在服务器端的平台。它可以让JavaScript 脱离浏览器的束缚运行在一般的服务器环境下,就像运行 Python、Perl、PHP、Ruby程序一样。你可以用 Node.js 轻松地进行服务器端应用开发,Python、Perl、PHP、Ruby 能做的事情 Node.js 几乎都能做,而且可以做得更好。 一句话概括,就是让javascript作为后台服务器的开发语言。
Node.js 不是一种独立的语言
Node.js 也不是一个 JavaScript 框架 [/u]
Node.js 更不是浏览器端的库
Node.js 是一个让 JavaScript 运行在服务端的开发平台
Node.js 不运行在浏览器中
Node.js 是一个让 JavaScript 运行在浏览器之外的平台。它实现了诸如文件系统、模块、包、操作系统 API、网络通信等 Core JavaScript 没有或者不完善的功能。
Node.js 的 JavaScript 引擎是 V8,来自 Google Chrome 项目
Node.js 不运行在浏览器中,所以也就不存在 JavaScript 的浏览器兼容性问题,你可以放心地使用 JavaScript 语言的所有特性。
Node.js 能做的远不止开发一个网站那么简单,使用 Node.js,你可以轻松地开发:
具有复杂逻辑的网站;
基于社交网络的大规模 Web 应用;
Web Socket 服务器;
TCP/UDP 套接字应用程序; 8
命令行工具;
交互式终端程序;
带有图形用户界面的本地应用程序;
单元测试工具;
客户端 JavaScript 编译器。
Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计 。Node.js 使用的是单线程模型,对于所有 I/O 都采用异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行的过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送到事件队列,等待程序进程进行处理。
这种异步事件模式的弊端也是显而易见的,因为它不符合开发者的常规线性思路,往往需要把一个完整的逻辑拆分为一个个事件,增加了开发和调试难度。
Node.js 的架构
CommonJS 规范与实现
为了统一 JavaScript 在浏览器之外的实现,CommonJS 诞生了。CommonJS 试图定义一套普通应用程序使用的API,从而填补 JavaScript 标准库过于简单的不足。CommonJS 的终极目标是制定一个像 C++ 标准库一样的规范,使得基于 CommonJS API 的应用程序可以在不同的环境下运行,就像用 C++ 编写的应用程序可以使用不同的编译器和运行时函数库一样。为了保持中立,CommonJS 不参与标准库实现,其实现交给像 Node.js 之类的项目来完成。图1-5是 CommonJS 的各种实现。
CommonJS 规范包括了模块(modules)、包(packages)、系统(system)、二进制(binary)、控制台(console)、编码(encodings)、文件系统(filesystems)、套接字(sockets)、单元测试(unit testing)等部分。目前大部分标准都在拟定和讨论之中,已经发布的标准有Modules/1.0、Modules/1.1、Modules/1.1.1、Packages/1.0、System/1.0。
相关文章推荐
- matlab学习笔记001之与本项目相关的matlab基础
- NodeJS学习笔记—1.CommonJS规范
- 【J2EE核心开发学习笔记001】通过JDBC进行简单的增删改查(以MySQL为例)
- 我的学习笔记001--private protected public internal
- 学习笔记之NodeJs基本操作
- Unity学习笔记001-Unity安装破解详细图文教程
- NodeJS学习笔记
- node.js 学习笔记001 :Hello,world !
- Laravel框架学习笔记001
- PyQt5学习笔记001——Hello, world!
- nodejs学习笔记四——express-session
- CVP认证学习笔记--李天宇001添加文字层
- js学习笔记-001
- nodejs学习笔记
- NodeJs 学习笔记(一)Wedding 项目搭建
- C#学习笔记(C#与C++的差异)001
- [Nodejs]初探nodejs学习笔记- 如何使用nodejs接收get/post 数据(参数)
- 【前端学习笔记】2015-09-09~~~~nodejs中的require()和module.exports
- NodeJS学习笔记一
- NodeJS学习笔记之Http模块