NodeJS学习day01

作者: changlinwang | 来源:发表于2017-05-27 13:09 被阅读36次

    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 jquery@1.12.4 下载指定版本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. 同时下载多个模块
      <pre>
      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的帮助文档
      </pre>

    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

        本文链接:https://www.haomeiwen.com/subject/eghqfxtx.html