第一. JavaScript简述
1992年, 第一个客户端脚本语言ScriptEase诞生, 由Nombas公司开发;JavaScript的首秀是在1995年,JScript 的诞生成为 JavaScript 发展的一个重要里程碑,标志了动态网页时 代的全面到来。
在1996年,JavaScript 标准由诸多软件厂商共同提交给ECMA(欧洲计算机制造商协会)。 ECMA 通过了标准 ECMA-262,也就是 ECMAScript。
第二. Node.js是什么?
2009年,由 Ryan Dahl发起的开源项目, 后被Joyent公司收购并管理维护;Node.js 有着强大而灵活的包管理器(node package manager,npm),目前已经有上万个第三方模块,其中有网站开发框架, 有 MySQL、PostgreSQL、MongoDB 数据库接口,有模板语言解析、CSS 生成工具、邮件、 加密、图形、调试支持,甚至还有图形用户界面和操作系统API工具。
Node.js是一个让 JavaScript 运行在服务端的开发平台;
Node.js可以作为服务器向用户提供服务,它跳过了 Apache、Nginx 等 HTTP 服务器,直接面向前端开发。Node.js 的许多设计理念与经典架构(如 LAMP)有着很大的 不同,可提供强大的伸缩能力,以适应21世纪10年代以后规模越来越庞大的互联网环境。
第三. Node.js不是什么?
1. Node.js 不是一种独立的语言,
2. Node.js 不是一个 JavaScript 框架 ;
第四 JS
第一种分类
JavaScript 是由 ECMAScript、文档对象模型(DOM)和浏览器对象模型(BOM)组成的,
第二种分类
JavaScript 由 Core JavaScript 和 Client JavaScript 组成.
Node.js 中所谓的 JavaScript 只是 Core JavaScript,或是ECMAScript的一种实现, 不包含 DOM、BOM 或者 Client JavaScript;
Node.js 是一个让 JavaScript 运行在浏览器之外的平台。它实现了诸如文件系统、模块、 包、操作系统 API、网络通信等 Core JavaScript 没有或者不完善的功能。
Node.js 的 JavaScript 引擎是 V8,来自 Google Chrome 项目。
node.js能做什么?
具有复杂逻辑的网站;
基于社交网络的大规模 Web 应用;
Web Socket 服务器;
TCP/UDP 套接字应用程序; 8 命令行工具;
交互式终端程序;
带有图形用户界面的本地应用程序;
单元测试工具;
客户端 JavaScript 编译器。
第五. Node.js 与 PHP 对比
Node.js 内建了 HTTP 服务器支持,也就是说你可以轻而易举地实现一个网站和服务器
的组合。
使用 PHP 的时候,必须先搭建一个 Apache 之类的HTTP 服务器,然后通过 HTTP 服务器的模块加载或 CGI 调用,才能将 PHP 脚本的执行结 果呈现给用户。
Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。
第六 Node.js与传统对比
1. 传统: 多线程模型. 为每个业务逻辑提供一个系统线程,通过系统线程切换来弥补同步式 I/O 调用时的时间开销。
2. Node.js: 单线程模型, 对于所有 I/O 都采用异步式的请求方式,避免了频繁的上下文切换。
异步机制是基于事件的, 以非阻塞的方式请求,返回的结果由事件循环来处理。
优缺点
1. 优点: CPU 和内存在同一时间集中处理一件事,同时尽可能让耗时的 I/O 操作并行执行。
2. 缺点: 它不符合开发者的常规线性思路,往往 需要把一个完整的逻辑拆分为一个个事件,增加了开发和调试难度。
引擎效率革命导致, 之前网景公司实现并收费的服务端的JavaScript重回人们的视野, 为了统一 JavaScript 在浏览器之外的实现,CommonJS 诞生了, CommonJS 规范包括了模块(modules)、包(packages)、系统(system)、二进制(binary)、 控制台(console)、编码(encodings)、文件系统(filesystems)、套接字(sockets)、单元测 试(unit testing)等部分。
Node.js 是目前 CommonJS 规范最热门的一个实现,它基于 CommonJS 的 Modules/1.0 规 范实现了 Node.js 的模块,同时随着 CommonJS 规范的更新,Node.js 也在不断跟进。
第二部分
#### 配置开发环境
Node.js官网提供了 Mac OS X 的安装包, 下载安装包。下载完成后运行安装包;
主要概念
1. Homebrew: 是一款自由及开放源代码的软件包管理系统,用以简化Mac OS X系统上的软件安装过程;
2. nvm: 借助(Node Version Manager)来安装并管理Node.js。由于node更新非常快速,开发过程很有可能会有切换node版本的需求;
3. npm: 是 Node 的模块管理器,功能极其强大。只要一行命令,就能安装别人写好的模块。
4. curl: 是利用URL语法在命令行方式下工作的文件传输工具,支持很多协议,如HTTP、FTP、TELNET等。
起初设想的安装步骤: 用Homebrew安装nvm, 然后使用nvm安装Node.js
第一步: 安装brew, 之前安装ruby时已经配置好了, 很轻大的工具, 你指的拥有. Brew首页查看最新的安装方法
#一行代码搞定
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
第二步: brew安装nvm, 一行代码搞定;
$ brew install nvm
然后没没有然后了, 后来在nvm在github的说明中找到了如下:
Homebrew installation is not supported. If you have issues with homebrew-installed nvm, please brew uninstall it, and install it using the instructions below, before filing an issue.
正确姿势: <多看官方文档>
第一步: 使用curl
方式安装:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
Mac安装后如果提示nvm: command not found
, 是因为没有[.bash_profile file]
文件,
第一种方法: 创建touch ~/.bash_profile
, 然后重新执行curl操作;
第二种方法: 打开.bash_profile
, 添加source ~/.bashrc
第二步: 下载不同版本<2016年9月23日>
now
(io.js) v2.0 : v2.x
| | : |
v0.10.x /--------------:-----------------\ Node.js 2.0
____|____/ : \______|_____
\ : /
\--------------:-----------------/
| | : | |
(node.js) v0.12.x : v0.13.x v0.14.x
对于nodejs与io.js的版本区别以及渊源,建议大家参考Node.js与io.js那些事儿
【2006年,也许是厌倦了读博的无聊,他产生了『世界那么大,我想去看看』的念头,做出了『退学』的决定,然后一个人来到智利的Valparaiso小镇。 】那时候他尚不知道找一个什么样的工作来糊口。。。。。
【在他眼中,拿工资和上班其实就是去那里旅行。】
歪瓜仁没事咋就喜欢随便退学呢?
还不知道怎么糊口,就先退个学试试,闹着玩儿呢。
2.1罗列
#罗列可以安装的版本
$ nvm ls-remote
.
.
.
v6.4.0
v6.5.0
v6.6.0
2.2下载版本
#为了演示,选择了6.6.0
$ nvm install v6.6.0
$ nvm install v5.12.0
######################################################################## 100.0%
WARNING: checksums are currently disabled for node.js v4.0 and later
Now using node v5.12.0 (npm v3.8.6)
2.3切换版本
$ nvm use v5
Now using node v5.12.0 (npm v3.8.6)
$ nvm use v6
Now using node v6.6.0 (npm v3.10.3)
第三步骤常用命令
# 下载
$ nvm install ***
#切换版本
$ nvm use 版本号
#罗列下载的版本
$nvm ls
# 罗列远程版本
$nvm ls-remote
#设置默认的版本
$nvm alias default 版本
注意事项
当关闭终端在此打开时, 输入 nvm会提示找不到, 解决办法:
在.bash_profile
文件中添加source ~/.bashrc
;即可;nvm安装的路径是:
~/.nvm
;使用nvm安装node, 会安装在该路径下:
~/.nvm/versions/node
;
附加
Mac 环境变量配置
1./etc/profile: (不建议修改这个文件)全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
2./etc/bashrc: 系统级环境变量. 全局(公有)配置,bash shell执行时,不管是何种方式,都会读取此文件。
3.~/.bash_profile: 用户级环境变量.每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!
参考
Node.js 安裝與版本切換教學 (for MAC)
更多精彩内容请关注“IT实战联盟”哦~~~