NodeJS學(xué)習(xí)day01

NodeJS發(fā)展

作者:Dyan Dahl

  • 跟編程無(wú)關(guān)的紐約博士

  • 退學(xué)

  • 云通信

  • web性能專家

  • Google V8出現(xiàn)

  • 一個(gè)平臺(tái):集成了Google的V8引擎,讓JS運(yùn)行在服務(wù)器端的平臺(tái)**

Node發(fā)展

  • 第一階段(2009年):Ryan Dahl個(gè)人開發(fā)
  • 第二階段(2010年-2014年):Joyent公司資助,Dlyan Dahl負(fù)責(zé)技術(shù)工作
  • 第三階段(2014年-2015年):Node技術(shù)人才自立門戶,創(chuàng)立IO.js
  • 第四階段(2015年):IO.JS和NodeJS合并,步入快車道
  • 目前,NodeJS版本

**使用穩(wěn)定版本:v6.10.2 最新的版本已經(jīng)到7.7.10 了
注意: 偶數(shù)是穩(wěn)定版本 奇數(shù)是不穩(wěn)定版本

特點(diǎn)

  • 單線程 PHP是多線程
  • 事件驅(qū)動(dòng)和回調(diào)函數(shù)
  • 異步I/O
  • 跨平臺(tái) 所有的平臺(tái)都支持

功能

  • 復(fù)雜邏輯的網(wǎng)站|社交網(wǎng)站的大規(guī)模WEB應(yīng)用
  • 網(wǎng)絡(luò)爬蟲
  • WebSocket(端游,頁(yè)游)TCP/UDP套接字應(yīng)用程序
  • 單元測(cè)試工具
  • 圖形界面的本地應(yīng)用程序(操作系統(tǒng))
  • 交互式終端程序
    退出交互式的命令 .exit 可以退出 或ctrl+C 退出 2次

Node.js的缺點(diǎn)

  • 大量采用匿名函數(shù),使得拋出的異常不易閱讀
  • try/catch限于同步代碼,使得異常捕獲較為復(fù)雜
  • 單線程:可靠性
  • 不適合CPU密集型的場(chǎng)景 // 比較費(fèi)時(shí)間的操作
  • 回調(diào)的代碼習(xí)慣影響閱讀
    ES6 Promise 解決嵌套回調(diào)的方式
    async ES2017 的語(yǔ)法
    q 第三方的庫(kù)實(shí)現(xiàn)異步回調(diào)
    bluebird 第三方庫(kù)實(shí)現(xiàn)解決異步回調(diào)方式

安裝

  1. 官網(wǎng)下載(v6.10.0):NodeJS官網(wǎng)
  2. 直接安裝
  3. 測(cè)試是否成功
    1. 按下cmd+R,輸入cmd,打開命令行工具
    2. 在命令行輸入node -v,顯示 v6.10.0,表示成功
    3. 順帶輸入npm -v,顯示 3.10.10,查看NPM版本
    4. nodejs的升級(jí) 可以安裝n模塊 然后可以升級(jí)到最新的版本
      安裝n模塊 然后通過n模塊升級(jí)
      查了下 在Mac下可以安裝 在Windows下無(wú)法安裝
      npm install -g n
      n stable 直接安裝到最新的版本 7.2.2
      n 6.10.0 或者 n v6.10.0 對(duì)應(yīng)版本

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

  • Node安裝成功,默認(rèn)就安裝了NPM
  • NodeJS就在服務(wù)器端:(不要在服務(wù)器端使用BOM和DOM,可以使用ECMAScript基本語(yǔ)法)
    1.alert()
    2.docuemnt對(duì)象也不存在與服務(wù)器端
    3.window對(duì)象也不存在于服務(wù)器端

功能

  • 安裝,卸載,更新,查看,搜索,發(fā)布包

命令

  1. 安裝下載模塊
    npm install jquery 下載jquery
    npm install jquery@1.12.4 下載指定版本jquery
    npm install jquery --save (簡(jiǎn)寫-S)
    npm install bootstrap --save-dev (簡(jiǎn)寫-D)
    // 注意只有一個(gè)-符號(hào)對(duì)應(yīng)后面的dev 并且后面還沒有空格的
    npm install ejs(模板引擎 類似template 類似``模板引擎) --save:
    下載ejs并且將ejs的版本信息寫入到package.json中
    Mac和windows cmd下面采用 mkdir 建立對(duì)應(yīng)的目錄
    NPM的安裝源 可以使用淘寶的安裝源安裝
    1.1 npm config set registry https://registry.npm.taobao.org
    1.2 安裝時(shí)指定安裝源
    npm install jquery --registry=https://registry.npm.taobao.org
    或者 npm install jquery --registry=http://registry.npm.taobao.org
    參數(shù)的前后沒有空格

  2. 同時(shí)下載多個(gè)模塊
    <pre>
    1.npm init(或者當(dāng)前目錄下新建package.json),內(nèi)容如下
    {
    "name": "myapp", package名字(自定義)
    "version": "1.0.0", package的版本(自定義)
    "description": "", 描述(自定義)
    "main": "main.js", 主入口文件(自定義)
    "dependencies": { package的應(yīng)用依賴模塊,及別人要使用這個(gè)package,至少需要安裝哪些東西。
    "jquery": "1.8.3", 下載jquery
    "bootstrap":"", 下載bootstrap
    "angular":"
    " 下載angularJS
    },
    "author": "lin", 作者
    "license": "ISC" 授權(quán)
    }
    2.npm install 下載安裝
    3.npm list 查看已經(jīng)安裝的模塊
    4.npm help npm的幫助文檔
    </pre>

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

  4. 查看包的信息

    • npm ls:查看安裝的包
    • npm ls jquery:查看jquery包的特性
    • npm info jquery:查看jquery包的詳細(xì)信息
  5. 更新包 npm update jquery

  6. 搜索包 npm search jquery

  7. 查看npm當(dāng)前配置 npm config list

注意事項(xiàng)

  • 版本號(hào)理解(jquery-1.11.0)
    // node 6.10.2 這3個(gè)數(shù)字分別代表什么意思

    • 主版本號(hào):不兼容的API修改
    • 副版本號(hào):向下兼容的功能性新增
    • 補(bǔ)丁版本號(hào):向下兼容的bug的修復(fù)
  • 常見版本號(hào)理解
    比如jquery^1.11.0 最終安裝的是 1.12.4

    • ^1.11.0 => 1.11.0 <= version < 2.0.0:比較激進(jìn)
    • 1.11.0:就是1.11.1版本
      比如jquery~1.11.0 最終安裝 1.11.3 版本
    • ~1.11.0 => 1.11.0 <= version < 1.12.0:比較溫和,盡可能兼容
  • NPM下載目錄問題

    • 上級(jí)目錄有node_modules,文件就會(huì)被下載到上級(jí)的node_modules
  • 默認(rèn)在安裝node.js環(huán)境,path路徑就已經(jīng)添加了。
    執(zhí)行命令 npm config get prefix:獲取當(dāng)前npm命令
    注意:只有設(shè)置了環(huán)境變量 后面的supervisor 和 express才可以生效。
    (后期設(shè)置supervisor,express等命令使用)

  • 全局安裝(global)
    npm install supervisor -g
    npm install bower -g
    安裝的我不會(huì)出現(xiàn)在當(dāng)前目錄下,
    出現(xiàn)在C:\Users\lin(自己的用戶名)\AppData\Roaming\npm
    查看文件的時(shí)間 可以知道自己什么時(shí)間安裝的插件包
    supervisor 組件 可以自動(dòng)檢查文件發(fā)生變化 并重新執(zhí)行node命令

  • node程序的執(zhí)行采用2種方式
    第一種 node 文件名.js
    第二種 如果文件下面有package.json 采用npm run test; 對(duì)應(yīng)執(zhí)行文件

Node的模塊化開發(fā)程序

  1. NodeJS模塊(包)
    原生模塊:C++語(yǔ)言擴(kuò)展的模塊 fs http url等:直接引入使用
    文件模塊:
    1.1 第三方文件模塊:
    由組織或者個(gè)人寫的模塊:
    必須先下載再引入模塊
    ejs:模板引擎
    mongodb:NoSQL數(shù)據(jù)庫(kù)
    1.2 自定義文件模塊: module(模塊) exports(導(dǎo)入)
    1.2.1 采用exports導(dǎo)入的方式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容