亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

node初識

Original 2016-11-07 14:05:29 573
abstract:什么是nodeNode是基于Chrome V8 解析引擎之上構建的一個JavaScript運行時環(huán)境,或者說平臺在node中,可以使用JavaScript語言進行編譯把Node是一個平臺,讓JavaScript可以脫離瀏覽器環(huán)境運行Node自身使用C++ 語言寫出了很多系統(tǒng)級別相關的API,暴露了一些JavaScript環(huán)境APInpm:包管理工具npm是一個用來托管基于node開發(fā)包的是一個命令

什么是node

Node是基于Chrome V8 解析引擎之上構建的一個JavaScript運行時環(huán)境,或者說平臺在node中,可以使用JavaScript語言進行編譯把

Node是一個平臺,讓JavaScript可以脫離瀏覽器環(huán)境運行

Node自身使用C++ 語言寫出了很多系統(tǒng)級別相關的API,暴露了一些JavaScript環(huán)境API

npm:包管理工具npm

  • 是一個用來托管基于node開發(fā)包的

  • 是一個命令行工具,可以用來下載npm網(wǎng)絡上托管的Node包

  • 有了npm,直接拿來解決問題,更加專注于業(yè)務處理

Node的特點:

event——driven:事件驅動

  • non-blocking I/O model :非阻塞IO模型

  • 文件IO、網(wǎng)絡IO基本山都是異步的

  • 在Node中有各種花式回調

  • Node采用的是事件驅動和非阻塞IO模型使它本身非常的輕量級和高效

Node總結

Node是基于Chrome V8引擎,一個JavaScript運行環(huán)境

驗證node版本 node -v

操作方法

創(chuàng)建http服務器得到一個服務器實例對象

var http = reauire('http')
var server = http.createServer()

給Server對象添加request事件處理函數(shù):回調函數(shù)有兩個參數(shù)

1 Request:用來獲取當前客戶端的請求信息,可以獲取客戶端請求中的url請求地址、查詢字符串、post請求提交

2 Response:也是一個對象,一般用來給本次請求發(fā)送響應數(shù)據(jù)

通過Server對象的listen函數(shù),設置一個監(jiān)聽的端口號,啟動服務器

服務器開啟監(jiān)聽成功后,會觸發(fā)該回調函數(shù)

path環(huán)境變量

配置用戶環(huán)境變量 快速啟動

Node中的JavaScript

  • REPL運行環(huán)境

  • R: read

  • E: Eval

  • P: Print

  • L: loop

  • ECMAscript

  • Node對最新的ECMAscript語言標準支持的非常好

  • Node除了官方的ECMAscript語言規(guī)范,同時將console對象、定時器等函數(shù)也移植到NOde中

  • 全局對象

  • global:相對于瀏覽器中的全局對象window,全局作用域和模塊作用域的概念

  • Console

  • process:進程對象,對應著的是瀏覽器中的window對象

  • Buffer

Node中的模塊系統(tǒng)

  • Node天生就已經(jīng)實現(xiàn)了一個模塊系統(tǒng)解決方案

  • 每個文件對外接口是module.exports

  • 向當前運行終端輸出一些內容
    process.stdout.write

  • 接收終端輸入的內容

  • 當程度啟動,當前應用程序就保持掛起 等待用戶輸入內容
    process.stdin.on('data', function (data) { })

模塊系統(tǒng)

模塊系統(tǒng)解決方案

Node基于CommonJS規(guī)范實現(xiàn)了自己的一套模塊系統(tǒng)規(guī)范

文件模塊 

用戶編寫的模塊

第三方模塊

一般就是通過npm install安裝的模塊就是第三方模塊

npm 本地安裝 全局安裝

  • npm install 包名 --global|-g 全局安裝

        nodemon

        可以實現(xiàn)文件代碼改變

  • htp-server

        可以實現(xiàn)快速啟動服務器

  • 使用npm root -g 可以查看全局命令行工具的安裝

  • brower-sync

        前端可視化開發(fā)

git bash here

  • touch 新建一個文件

  • cat 查看文件

  • vi (文件名)

  • 按less (文件名)按q退出

  • yy 在編輯模式中是復制 p是粘貼

文件操作

path

使用是進入node環(huán)境,然后開始使用

同步、異步調用

  • 同步調用代碼會阻塞后續(xù)代碼的繼續(xù)執(zhí)行,沒有異步API執(zhí)行效率高,但是寫起來爽

  • 同步操作API需要使用try catch捕獲異常

  • readFileSync('./REEADEME.md', 'utf8')

  • 異步API一般都是通過回調函數(shù)的形式來獲取執(zhí)行結果

  • 異步API無法通過try catch來捕獲異常,一般在愛回調函數(shù)中,node會給你提供了一個err對象,你可以通過判斷回調函數(shù)的第一個參數(shù)err來看看是否有異常發(fā)生

  • 能使用異步API的情況下,少使用同步的

  • highlight.js markdown高亮

promise

then里邊有三種結果

  • then可以多次鏈式調用

  • 每一個then 中的回調函數(shù)的結果取決于上一then的返回值

  • then里邊不返回任何東西,默認就是undefined

  • then里面顯示的調用了return下一個then得到的就是上一個then的return結果

  • 在一個then里面返回一個新的Promise對象


Release Notes

Popular Entries