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

node初識(shí)

原創(chuàng) 2016-11-07 14:05:29 573
摘要:什么是nodeNode是基于Chrome V8 解析引擎之上構(gòu)建的一個(gè)JavaScript運(yùn)行時(shí)環(huán)境,或者說(shuō)平臺(tái)在node中,可以使用JavaScript語(yǔ)言進(jìn)行編譯把Node是一個(gè)平臺(tái),讓JavaScript可以脫離瀏覽器環(huán)境運(yùn)行Node自身使用C++ 語(yǔ)言寫(xiě)出了很多系統(tǒng)級(jí)別相關(guān)的API,暴露了一些JavaScript環(huán)境APInpm:包管理工具npm是一個(gè)用來(lái)托管基于node開(kāi)發(fā)包的是一個(gè)命令

什么是node

Node是基于Chrome V8 解析引擎之上構(gòu)建的一個(gè)JavaScript運(yùn)行時(shí)環(huán)境,或者說(shuō)平臺(tái)在node中,可以使用JavaScript語(yǔ)言進(jìn)行編譯把

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

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

npm:包管理工具npm

  • 是一個(gè)用來(lái)托管基于node開(kāi)發(fā)包的

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

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

Node的特點(diǎn):

event——driven:事件驅(qū)動(dòng)

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

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

  • 在Node中有各種花式回調(diào)

  • Node采用的是事件驅(qū)動(dòng)和非阻塞IO模型使它本身非常的輕量級(jí)和高效

Node總結(jié)

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

驗(yàn)證node版本 node -v

操作方法

創(chuàng)建http服務(wù)器得到一個(gè)服務(wù)器實(shí)例對(duì)象

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

給Server對(duì)象添加request事件處理函數(shù):回調(diào)函數(shù)有兩個(gè)參數(shù)

1 Request:用來(lái)獲取當(dāng)前客戶端的請(qǐng)求信息,可以獲取客戶端請(qǐng)求中的url請(qǐng)求地址、查詢字符串、post請(qǐng)求提交

2 Response:也是一個(gè)對(duì)象,一般用來(lái)給本次請(qǐng)求發(fā)送響應(yīng)數(shù)據(jù)

通過(guò)Server對(duì)象的listen函數(shù),設(shè)置一個(gè)監(jiān)聽(tīng)的端口號(hào),啟動(dòng)服務(wù)器

服務(wù)器開(kāi)啟監(jiān)聽(tīng)成功后,會(huì)觸發(fā)該回調(diào)函數(shù)

path環(huán)境變量

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

Node中的JavaScript

  • REPL運(yùn)行環(huán)境

  • R: read

  • E: Eval

  • P: Print

  • L: loop

  • ECMAscript

  • Node對(duì)最新的ECMAscript語(yǔ)言標(biāo)準(zhǔn)支持的非常好

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

  • 全局對(duì)象

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

  • Console

  • process:進(jìn)程對(duì)象,對(duì)應(yīng)著的是瀏覽器中的window對(duì)象

  • Buffer

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

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

  • 每個(gè)文件對(duì)外接口是module.exports

  • 向當(dāng)前運(yùn)行終端輸出一些內(nèi)容
    process.stdout.write

  • 接收終端輸入的內(nèi)容

  • 當(dāng)程度啟動(dòng),當(dāng)前應(yīng)用程序就保持掛起 等待用戶輸入內(nèi)容
    process.stdin.on('data', function (data) { })

模塊系統(tǒng)

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

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

文件模塊 

用戶編寫(xiě)的模塊

第三方模塊

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

npm 本地安裝 全局安裝

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

        nodemon

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

  • htp-server

        可以實(shí)現(xiàn)快速啟動(dòng)服務(wù)器

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

  • brower-sync

        前端可視化開(kāi)發(fā)

git bash here

  • touch 新建一個(gè)文件

  • cat 查看文件

  • vi (文件名)

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

  • yy 在編輯模式中是復(fù)制 p是粘貼

文件操作

path

使用是進(jìn)入node環(huán)境,然后開(kāi)始使用

同步、異步調(diào)用

  • 同步調(diào)用代碼會(huì)阻塞后續(xù)代碼的繼續(xù)執(zhí)行,沒(méi)有異步API執(zhí)行效率高,但是寫(xiě)起來(lái)爽

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

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

  • 異步API一般都是通過(guò)回調(diào)函數(shù)的形式來(lái)獲取執(zhí)行結(jié)果

  • 異步API無(wú)法通過(guò)try catch來(lái)捕獲異常,一般在愛(ài)回調(diào)函數(shù)中,node會(huì)給你提供了一個(gè)err對(duì)象,你可以通過(guò)判斷回調(diào)函數(shù)的第一個(gè)參數(shù)err來(lái)看看是否有異常發(fā)生

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

  • highlight.js markdown高亮

promise

then里邊有三種結(jié)果

  • then可以多次鏈?zhǔn)秸{(diào)用

  • 每一個(gè)then 中的回調(diào)函數(shù)的結(jié)果取決于上一then的返回值

  • then里邊不返回任何東西,默認(rèn)就是undefined

  • then里面顯示的調(diào)用了return下一個(gè)then得到的就是上一個(gè)then的return結(jié)果

  • 在一個(gè)then里面返回一個(gè)新的Promise對(duì)象


發(fā)佈手記

熱門(mén)詞條