Node.js是基于Google的V8引擎的一個(gè)事件驅(qū)動(dòng)I/O服務(wù)端JavaScript環(huán)境。它在2009年由Ryan Dahl發(fā)布,此后,迅速崛起成為一種新型服務(wù)端語(yǔ)言。
下面就逐步介紹Node.js。(有關(guān)Node.js的安裝等過(guò)程就不介紹了,另外,建議大家的IDE使用WebStrom,真的很不錯(cuò)。)
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上1000家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為巴州企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,巴州網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
和其它語(yǔ)言的入門(mén)一樣,先得把Hello,World輸出來(lái)(熟悉的感覺(jué)會(huì)增強(qiáng)信心)
console.log("Hello World");
Node.js是我學(xué)過(guò)的語(yǔ)言中寫(xiě)“Hello,World”最容易的了,不需要頭文件,不需要包,也不需要標(biāo)簽。console是它的一個(gè)內(nèi)嵌對(duì)象,log是console的方法,用于在控制臺(tái)輸出日志。簡(jiǎn)單的Hello,World只是相當(dāng)于作了一次深呼吸。
下面就開(kāi)始進(jìn)入第一天的重點(diǎn),就是Node的非阻塞I/O事件驅(qū)動(dòng)編程。其實(shí)如果學(xué)過(guò)JavaScript的話,對(duì)此會(huì)非常容易理解。先看示例:
/** * Created by Administrator on 2015/3/24. */ var count = 0; //Node.Js使用計(jì)時(shí)器,事件編程示例 //到3000ms時(shí)自動(dòng)調(diào)用響應(yīng)函數(shù),輸出count,在此期間,系統(tǒng)會(huì)繼續(xù)運(yùn)行下一句程序(也就是遞增count) //而不會(huì)等在這里等3000ms var fun1 = setTimeout(function(){ console.log(count); //結(jié)束計(jì)算任務(wù) clearInterval(fun2); //關(guān)閉重復(fù)執(zhí)行函數(shù)的函數(shù)fun2 },3000); //setInterval允許以指定的時(shí)間間隔重復(fù)執(zhí)行函數(shù) var fun2 = setInterval(function(){ count++; },500);//count從0開(kāi)始,沒(méi)過(guò)500ms加1,在3000ms時(shí)達(dá)到5
上述就是一個(gè)事件驅(qū)動(dòng)編程的示例:
系統(tǒng)執(zhí)行到setTimeOut時(shí),我們告訴系統(tǒng),在3000ms后需要執(zhí)行那個(gè)function(回調(diào)函數(shù)),然后系統(tǒng)就把這個(gè)function放進(jìn)了它的事件循環(huán)里面,之后系統(tǒng)繼續(xù)執(zhí)行下面的語(yǔ)句,執(zhí)行到setInterval時(shí),我們又告訴系統(tǒng)每過(guò)500ms就把count加1,系統(tǒng)就把這個(gè)事記在了它的事件循環(huán)里,然后等到時(shí)間一到,系統(tǒng)就會(huì)調(diào)用回調(diào)函數(shù)了。在此期間,它會(huì)繼續(xù)你的下一項(xiàng)任務(wù),而不會(huì)等待。