Node介绍

1. 相关概念

  • 什么是JavaScript

    • 一种遵守ECMAScript标准的脚本语言
    • 最初只能运行在浏览器端
  • 浏览器中的 JavaScript 可以做什么?

    • 操作DOM:表单验证、动画
    • 数据交互:ajax
    • 通常所指的 JavaScript :BOM + DOM (W3C)+ ECMAScript
  • JavaScript 只可以运行在浏览器中吗?

    • JavaScript 不仅仅能运行在浏览器中
    • JavaScript 还可以运行在服务器环境中,例如:node

    • JavaScript引擎

浏览器JavaScript引擎
Firefox SpiderMonkey
IE Chakra
Safari JavaScriptCore
Chrome V8
  • 客户端和服务器

    面向用户的一端就是客户端

    从数据角度来说:客户端只负责界面交互,主动的发起 HTTP 请求,请求后台服务器,把数据渲染到界面。

    服务器提供的 HTTP 服务,接收 客户端的 HTTP 请求,然后处理 HTTP 请求, 最后把要发送给客户端的响应数据通过网络发送给客户端。

2. 为什么要学习Nodejs

  • 什么是 Node.js

    Node.js 是一种建立在Google Chrome's V8 引擎上的non-blocking(非阻塞),event-driven(基于事件的)I/O平台
    Node.js平台使用的开发语言是JavaScript,平台提供了操作系统底层的API,方便做服务器端编程,
    具体包括:文件操作、进程操作、通信操作等系统模块,支持模块化的开发
    
    • Node.js官网:https://nodejs.org
    • Node.js 是一个构建与 Chrome 的 V8 JavaScript 引擎之上的一个 JavaScript 运行时环境
    • Node 可以用来解析和执行 JavaScript 代码(因为Node基于V8引擎)
    • Node 无法解析 DOM 和 BOM 等对象
    • Node 只关心数据部分,例如 读写文件,提供 Web 服务
    • Node 是 JavaScript 吗?

      Node 不是一种新的语言
      Node 是一个可以用来解析和执行 JavaScript 语言的一个环境或者说是一个平台
      Node 环境或者说平台 给 JavaScript 语言,提高了 一些 例如文件操作、网络操作等接口API
      
    • Node.js 的包管理系统 npm 是世界上最大的开源库生态系统

  • Node 的诞生历程

    • Node 的作者:Ryan Dahl
    • 2004年还在纽约读数学系博士
    • 2006年退学(世界那么大,我想去看看),生活所迫,选择了码农
    • 接项目、工作、旅行,两年之后,成为了高性能Web服务器的专家
    • 2009年5月,Ryan Dahl 在 github 上发布了最初的 Node 版本
    • 2010年底,Ryan Dahl 加入 Joyent 公司全职负责 Node 的发展
    • 2011年7月,Node 在微软的支持下发布了 Windows 版
    • 2012年1月底,Ryan Dahl 将掌门人身份转交给了 Isaac Z.Schlueter,自己转向一些研究项目
    • 2014年12月,多位重量级Node开发者不满 Joyent 对 Node 的管理,自立门户创建了 io.js
    • 2015年9月,Node 与 io.js 合并,Node 的版本从 0.12.7 直接升级到了 4.0.0
    • 合并后的 io.js 和 Node 在 Joyent 公司的维护下并行了两个版本:
      • 一个是4.x.x 还是原来的 Node,这个版本是稳定版
      • 一个是5.x.x,目前已经更新到了 6.6.0,其实就是 io,最新特性版,不建议生产环境使用
  • Node的特点
    • 事件驱动
    • 异步IO模型
    • 跨平台
  • 为什么要学习 Node
    • Node 打破了过去 JavaScript 只能在浏览器中运行的局面
    • 前后端编程环境统一,大大降低了前后端语言切换的代价
    • 全栈开发工程师
      • 后端开发工程师
      • 前端开发工程师
      • 移动端开发工程师
  • 使用 Node 可以做什么
    • 高性能的网站服务器
    • 简单易用的命名行应用程序
      • i5ting、gulp、less
    • 实时多人游戏后台服务器
    • 高大上的桌面应用程序
      • 使用 Web 技术 作为解决方案
    • 底层的物联网开发
    • 移动开发
      • Ionic --> 安卓 IOS
      • 使用 Web 技术作为解决方案

3. 安装Node.js

  • 两种安装方式
    • 直接下载Nodejs的安装包
    • 使用NVM安装,可以切换Nodejs的版本
      • NVM安装不同版本的Node
        nvm install 6.5.0
      • 查看现在可用的Node版本 nvm list
      • 切换Node版本 nvm use 6.6.0 32/64
  • 查看Node是否安装成功/查看Node的当前版本 node -v

  • 切换源 国内 https://registry.npm.taobao.org 国外 http://registry.npmjs.org/

    切换 npm config set registry https://registry.npm.taobao.org 配置后可通过下面方式来验证是否成功 npm config get registry

4. 学习Node.js的网站

posted @ 2016-11-07 10:24  彼此丶  阅读(1071)  评论(0编辑  收藏  举报