简单的说 Node.js 就是运行在服务端的 JavaScript(此JavaScript非彼JavaScript 去掉BOM和DOM的JavaScript)。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
构建与chome的V8引至上:
·代码只是具有特定格式的字符串而已
·引擎可以认识它,引擎可以帮助你来解析和执行
·Google Chrome的V8是目前公认解析执行JavaScript代码最快的
·Node.js吧V8引擎移植出来,开发了一个独立的JavaScript运行时环境。
学习Node.js的目的就是帮助大家打开服务端这个黑盒子
只有懂了服务端才能配合服务端开发人员 进行协同开发
1. nodejs 采用JavaScript进行编程 凡是能用用js来实现的,最终都会用js来实现 everywhere
Node.js 不是一门语言 不是库,不是框架 是一个JavaScript运行环境,简单来说就是可以解析和执行js代码
以前只有浏览器可以解析执行js代码,也就是说现在的js可以脱离浏览器来运行,一切归结于Node.js
浏览器中的JavaScript
*EcamaScript
·基本语法 if var function Objective Array
*BOM
*DOM由这三部分组成
2.Node.js中的JavaScript 没有BOM和DOM,只有EcmaScript 服务端不处理DOM,在Node.js执行环境中 提供了一些服务器界别的操作的API,如文件的读写,网络服务的构建,数据网络通信,http服务器等处理。学习node.js就是学习web服务器开发
3.事件驱动,非租塞IO模型(异步),轻量级和高效,
- Node 中的 JavaScript
+ EcmaScript
* 变量
* 方法
* 数据类型
* 内置对象
* Array
* Object
* Date
* Math
+ 模块系统
* 在 Node 中没有全局作用域的概念
* 在 Node 中,只能通过 require 方法来加载执行多个 JavaScript 脚本文件
* require 加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题
- 模块完全是封闭的
- 外部无法访问内部
- 内部也无法访问外部
* 模块作用域固然带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题
* 但是某些情况下,模块与模块是需要进行通信的
* 在每个模块中,都提供了一个对象:`exports`
* 该对象默认是一个空对象
* 你要做的就是把需要被外部访问使用的成员手动的挂载到 `exports` 接口对象中
* 然后谁来 `require` 这个模块,谁就可以得到模块内部的 `exports` 接口对象
* 还有其它的一些规则,具体后面讲,以及如何在项目中去使用这种编程方式,会通过后面的案例来处理
+ 核心模块
* 核心模块是由 Node 提供的一个个的具名的模块,它们都有自己特殊的名称标识,例如
- fs 文件操作模块
- http 网络服务构建模块
- os 操作系统信息模块
- path 路径处理模块
- 。。。。
* 所有核心模块在使用的时候都必须手动的先使用 `require` 方法来加载,然后才可以使用,例如:
- `var fs = require('fs')`
- http
+ require
+ 端口号
* ip 地址定位计算机
* 端口号定位具体的应用程序
+ Content-Type
* 服务器最好把每次响应的数据是什么内容类型都告诉客户端,而且要正确的告诉
* 不同的资源对应的 Content-Type 是不一样,具体参照:http://tool.oschina.net/commons
* 对于文本类型的数据,最好都加上编码,目的是为了防止中文解析乱码问题
+ 通过网络发送文件
* 发送的并不是文件,本质上来讲发送是文件的内容
* 当浏览器收到服务器响应内容之后,就会根据你的 Content-Type 进行对应的解析处理
- 模块系统
- Node 中的其它的核心模块
- 做一个小管理系统:
+ CRUD
- Express Web 开发框架
学习资料和视频上的,就是B战上看到的 地址https://www.bilibili.com/video/av27670326/?p=19