为什么要学习Node.js
- 企业需求
- 服务端开发经验更改
- front-end
- back-end
- 全栈开发工程师
- 基本的网站开发能力
- 服务端
- 前端
- 运维部署
- 多人社区
Node.js是什么?
- node.js是 JavaScript 运行时
- 既不是语言,也不是框架,而是一个平台,一个JavaScript的运行平台
浏览器中的JavaScript
- EcmaScript
- 基本语法
- if
- var
- function
- Object
- Array
- Bom
- Dom
浏览器中的
node.js 中的JavaScript
- 没有 BOM 、DOM
- EcmaScript 基本的 JavaScript 语言部分
- 变量
- 方法
- 数据类型
- 内置对象
- Array
- Object
- Date
- Math
- 模块系统
- 在 Node 中没有全局作用域的概念
- 在 Node 中,只能通过require 方法来加载执行多个 JavaScript 脚本文件
- require 加载只能是执行其中的代码,文件与文件之间由于是模块作用域,所以不会有污染的问题
- 模块是完全封闭的
- 外部无法访问内部
- 内部也无法访问外部
- 模块的作用域固然带来了一些好处,可以加载执行多个文件,可以完全避免变量命名冲突污染的问题
- 但是某种情况下,模块与模块之间是需要进行通信的
- 在每个模块中,都提供了一个对象: exports
- 该对象默认是一个空对象
- 你需要做得就是把需要被外部访问使用的成员手动的挂载到 ‘expost’ 接口对象中
- 然后,通过 ‘require’ 这个模块,就可以得到模块内部的 ‘exports’ 接口对象
- 还有其他规则,请看链接
链接: link.
- 核心模块
- 核心模块是由 Node 提供的一个个的具名的模块,它们都有自己的特殊的名称标识,例如
- fs 文件操作模块
- http 网络服务构建模块
- os 操作系统信息模块
- path 路径处理模块
- …
- 所有的核心模块在使用的时候都必须手动的先试用 ‘require’ 方法来加载,然后才可以使用,如:
- var fs = require(‘fs’)
- 核心模块是由 Node 提供的一个个的具名的模块,它们都有自己的特殊的名称标识,例如
- 在 Node 中为 JavaScript 提供了一些服务器级别的 API
- 文件操作能力
- http 服务器能力
- 网络服务的构建
- 网络通信
- 构架与Chrome的V8引擎智商
- 代码只是具有特定格式的字符串
- 引擎可以认识他
- Google Chrome 的V8引擎是目前公认的解析执行JavaScriptdiamante最快的
- Node.js的作者把Google Chrome中的V8 引擎一直出来,开发了一个独立的JavaScript运行时环境
node.js官方介绍
- Node.js uses an envent-driven,non-blocking I/O mode that makes it lightweight and efficent.
- envent-driven 事件驱动
- non-blocking I/O mode 非阻塞I/O模型(异步)
- ightweight and efficent. 轻量和高效
-Node.js package ecosystem,npm,is the larget scosystem of open sourcr libraries in the world - npm 是世界上最大的开源生态系统
- 绝大多数JavaScript相关的包都存放在npm上,这样做的目的是为了让开发人员更方便的去下载使用
- npm install jquery
Node能做什么
- web服务器后台
-
- 命令行工具
- npm (node)
- git语言 (c语言)
- hexo (node)
- 命令行工具
- 对抢断工程师来讲,接触最多的就是它的命令行工具
- 自己写的很少,主要使用别人第三方
- webpack
- gulp
- npm