NodeJS学习day01

NodeJS发展

作者:Dyan Dahl

  • 跟编程无关的纽约博士

  • 退学

  • 云通信

  • web性能专家

  • Google V8出现

  • 一个平台:集成了Google的V8引擎,让JS运行在服务器端的平台**

Node发展

  • 第一阶段(2009年):Ryan Dahl个人开发
  • 第二阶段(2010年-2014年):Joyent公司资助,Dlyan Dahl负责技术工作
  • 第三阶段(2014年-2015年):Node技术人才自立门户,创立IO.js
  • 第四阶段(2015年):IO.JS和NodeJS合并,步入快车道
  • 目前,NodeJS版本

**使用稳定版本:v6.10.2 最新的版本已经到7.7.10 了
注意: 偶数是稳定版本 奇数是不稳定版本

特点

  • 单线程 PHP是多线程
  • 事件驱动和回调函数
  • 异步I/O
  • 跨平台 所有的平台都支持

功能

  • 复杂逻辑的网站|社交网站的大规模WEB应用
  • 网络爬虫
  • WebSocket(端游,页游)TCP/UDP套接字应用程序
  • 单元测试工具
  • 图形界面的本地应用程序(操作系统)
  • 交互式终端程序
    退出交互式的命令 .exit 可以退出 或ctrl+C 退出 2次

Node.js的缺点

  • 大量采用匿名函数,使得抛出的异常不易阅读
  • try/catch限于同步代码,使得异常捕获较为复杂
  • 单线程:可靠性
  • 不适合CPU密集型的场景 // 比较费时间的操作
  • 回调的代码习惯影响阅读
    ES6 Promise 解决嵌套回调的方式
    async ES2017 的语法
    q 第三方的库实现异步回调
    bluebird 第三方库实现解决异步回调方式

安装

  1. 官网下载(v6.10.0):NodeJS官网
  2. 直接安装
  3. 测试是否成功
    1. 按下cmd+R,输入cmd,打开命令行工具
    2. 在命令行输入node -v,显示 v6.10.0,表示成功
    3. 顺带输入npm -v,显示 3.10.10,查看NPM版本
    4. nodejs的升级 可以安装n模块 然后可以升级到最新的版本
      安装n模块 然后通过n模块升级
      查了下 在Mac下可以安装 在Windows下无法安装
      npm install -g n
      n stable 直接安装到最新的版本 7.2.2
      n 6.10.0 或者 n v6.10.0 对应版本

NPM(Node Package Manager):Node JS包管理工具

  • Node安装成功,默认就安装了NPM
  • NodeJS就在服务器端:(不要在服务器端使用BOM和DOM,可以使用ECMAScript基本语法)
    1.alert()
    2.docuemnt对象也不存在与服务器端
    3.window对象也不存在于服务器端

功能

  • 安装,卸载,更新,查看,搜索,发布包

命令

  1. 安装下载模块
    npm install jquery 下载jquery
    npm install [email protected] 下载指定版本jquery
    npm install jquery --save (简写-S)
    npm install bootstrap --save-dev (简写-D)
    // 注意只有一个-符号对应后面的dev 并且后面还没有空格的
    npm install ejs(模板引擎 类似template 类似``模板引擎) --save:
    下载ejs并且将ejs的版本信息写入到package.json中
    Mac和windows cmd下面采用 mkdir 建立对应的目录
    NPM的安装源 可以使用淘宝的安装源安装
    1.1 npm config set registry https://registry.npm.taobao.org
    1.2 安装时指定安装源
    npm install jquery --registry=https://registry.npm.taobao.org
    或者 npm install jquery --registry=http://registry.npm.taobao.org
    参数的前后没有空格

  2. 同时下载多个模块


    1.npm init(或者当前目录下新建package.json),内容如下
    {
    "name": "myapp", package名字(自定义)
    "version": "1.0.0", package的版本(自定义)
    "description": "", 描述(自定义)
    "main": "main.js", 主入口文件(自定义)
    "dependencies": { package的应用依赖模块,及别人要使用这个package,至少需要安装哪些东西。
    "jquery": "1.8.3", 下载jquery
    "bootstrap":"", 下载bootstrap
    "angular":"
    " 下载angularJS
    },
    "author": "lin", 作者
    "license": "ISC" 授权
    }
    2.npm install 下载安装
    3.npm list 查看已经安装的模块
    4.npm help npm的帮助文档

  3. 卸载 npm uninstall jquery
    npm uninstall jquery --save

  4. 查看包的信息

    • npm ls:查看安装的包
    • npm ls jquery:查看jquery包的特性
    • npm info jquery:查看jquery包的详细信息
  5. 更新包 npm update jquery

  6. 搜索包 npm search jquery

  7. 查看npm当前配置 npm config list

注意事项

  • 版本号理解(jquery-1.11.0)
    // node 6.10.2 这3个数字分别代表什么意思

    • 主版本号:不兼容的API修改
    • 副版本号:向下兼容的功能性新增
    • 补丁版本号:向下兼容的bug的修复
  • 常见版本号理解
    比如jquery^1.11.0 最终安装的是 1.12.4

    • ^1.11.0 => 1.11.0 <= version < 2.0.0:比较激进
    • 1.11.0:就是1.11.1版本
      比如jquery~1.11.0 最终安装 1.11.3 版本
    • ~1.11.0 => 1.11.0 <= version < 1.12.0:比较温和,尽可能兼容
  • NPM下载目录问题

    • 上级目录有node_modules,文件就会被下载到上级的node_modules
  • 默认在安装node.js环境,path路径就已经添加了。
    执行命令 npm config get prefix:获取当前npm命令
    注意:只有设置了环境变量 后面的supervisor 和 express才可以生效。
    (后期设置supervisor,express等命令使用)

  • 全局安装(global)
    npm install supervisor -g
    npm install bower -g
    安装的我不会出现在当前目录下,
    出现在C:\Users\lin(自己的用户名)\AppData\Roaming\npm
    查看文件的时间 可以知道自己什么时间安装的插件包
    supervisor 组件 可以自动检查文件发生变化 并重新执行node命令

  • node程序的执行采用2种方式
    第一种 node 文件名.js
    第二种 如果文件下面有package.json 采用npm run test; 对应执行文件

Node的模块化开发程序

  1. NodeJS模块(包)
    原生模块:C++语言扩展的模块 fs http url等:直接引入使用
    文件模块:
    1.1 第三方文件模块:
    由组织或者个人写的模块:
    必须先下载再引入模块
    ejs:模板引擎
    mongodb:NoSQL数据库
    1.2 自定义文件模块: module(模块) exports(导入)
    1.2.1 采用exports导入的方式

你可能感兴趣的:(NodeJS学习day01)