自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

利用Node.js創(chuàng)建Web應(yīng)用程序前須了解這七項(xiàng)

譯文
開(kāi)發(fā) 后端
隨著Node.js人氣的持續(xù)提升,大家很可能終有一天會(huì)利用它來(lái)開(kāi)發(fā)自己的下一款Web應(yīng)用程序。目前已經(jīng)有相當(dāng)一部分程序員開(kāi)始利用它來(lái)創(chuàng)建實(shí)時(shí)Web API,這是因?yàn)镹ode.js無(wú)疑是我們能夠找到的最優(yōu)秀的、可用于創(chuàng)建服務(wù)器端應(yīng)用的運(yùn)行時(shí)系統(tǒng)。

[[156727]]

隨著Node.js人氣的持續(xù)提升,大家很可能終有一天會(huì)利用它來(lái)開(kāi)發(fā)自己的下一款Web應(yīng)用程序。目前已經(jīng)有相當(dāng)一部分程序員開(kāi)始利用它來(lái)創(chuàng)建實(shí)時(shí)Web API,這是因?yàn)镹ode.js無(wú)疑是我們能夠找到的***秀的、可用于創(chuàng)建服務(wù)器端應(yīng)用的運(yùn)行時(shí)系統(tǒng)。這是一款具備高度可定制能力的服務(wù)器引擎,大家可以根據(jù)自己的實(shí)際需求對(duì)其進(jìn)行設(shè)置,從而使其更好地為各位服務(wù)。而如果我們需要的是一套易用性出眾的系統(tǒng),Node.js同樣能夠滿(mǎn)足需求,而且它會(huì)改變我們構(gòu)建網(wǎng)絡(luò)或者其它事件驅(qū)動(dòng)型應(yīng)用程序的具體方式。在今天的文章中,我們將一同了解關(guān)于Node.js的幾大關(guān)鍵性事實(shí)。

1) Node.js的速度表現(xiàn)非常驚人

Node.js使用的是一套V8引擎,其能夠以極快速度完成JavaScript的編譯與執(zhí)行。而這主要是由于V8能夠?qū)avaScript作為原生機(jī)器碼處理。

另外值得一提的就是Node.js的事件循環(huán);其屬于單線程,且以異步方式執(zhí)行所有操作。它能夠異步執(zhí)行全部I/O操作,確保大家不會(huì)遭遇任何延遲狀況。

在使用Node.js的時(shí)候,大家會(huì)享受到面向網(wǎng)絡(luò)連接、文件系統(tǒng)以及數(shù)據(jù)庫(kù)的快速讀取與寫(xiě)入效果。這些在應(yīng)用程序構(gòu)建工作當(dāng)中顯然都非常重要。

總而言之,在使用Node.js的過(guò)程中,大家會(huì)驕傲地發(fā)現(xiàn)自己將擁有速度極快且可擴(kuò)展能力良好的Web應(yīng)用程序,而且其能夠并行處理大量連接并仍然保持理想的輸出速度。

2) Node.js代碼包共享極為便利

在Node.js社區(qū)當(dāng)中,庫(kù)代碼包的共享可謂極為便利。這些代碼包在文化、法律、規(guī)程乃至技術(shù)層面皆允許我們進(jìn)行共享。Node.js還配備一套Node Package Manager,其中包含有大量現(xiàn)成的代碼包選項(xiàng)。這就使得我們很可能從他人已經(jīng)開(kāi)發(fā)完成的成果中發(fā)現(xiàn)自己需要的部分。

大家可以創(chuàng)建屬于自己的Node.js代碼包,而后將其輕松共享給其他用戶(hù)。要?jiǎng)?chuàng)建這樣一個(gè)代碼包,大家可以使用以下代碼:

 

  1. hello 
  2.  
  3. | index.js 
  4.  
  5. | package.json 

一旦創(chuàng)建完成,大家即可利用以下代碼在其它應(yīng)用當(dāng)中使用該代碼包。

 

  1. hello-world 
  2.  
  3. | app.js 

現(xiàn)在我們可以將該代碼包定位至其文件夾當(dāng)中并加以運(yùn)行。一旦其投入運(yùn)行,我們即可根據(jù)需要隨意加以使用。

3) Node.js擁有出色的實(shí)時(shí)能力

.實(shí)時(shí)能力在Node.js的實(shí)時(shí)能力即強(qiáng)大又易于實(shí)現(xiàn)。它能夠在大量并發(fā)連接當(dāng)中良好起效,因此其在即時(shí)游戲、通訊以及其它多種常見(jiàn)的多用戶(hù)實(shí)時(shí)應(yīng)用當(dāng)中擁有出色的表現(xiàn)。

Node.js當(dāng)中的多用戶(hù)要求由其事件循環(huán)進(jìn)行處理,而其實(shí)時(shí)能力則可通過(guò)WebSocket協(xié)議的使用得以實(shí)現(xiàn);這基本上相當(dāng)于利用Node.js在服務(wù)器與客戶(hù)端之間建立起一條雙向通信通道。有了這條通信通道,客戶(hù)端就能夠輕松將數(shù)據(jù)發(fā)送至服務(wù)器,而服務(wù)器亦可以同樣的方式將數(shù)據(jù)發(fā)送至客戶(hù)端。

目前***人氣的WebSocket協(xié)議之一正是Socket.io。以下代碼演示了服務(wù)器如何使用該協(xié)議:

 

  1. var app = require(‘http’).createServer(handler) 
  2.  
  3. var io = require(‘socket.io’)(app); 
  4.  
  5. app.listen(8080); 
  6.  
  7. io.on(‘connection’, function (socket) { 

// 向客戶(hù)端發(fā)送一條消息

 

  1. socket.emit(‘event to client’, { hello: ‘world’ }); 

// 處理一條來(lái)自客戶(hù)端的消息

 

  1. socket.on(‘event from client, function (data) { 
  2.  
  3. console.log(data); 
  4.  
  5. }); 
  6.  
  7. }); 

4) Node.js提供事件驅(qū)動(dòng)型編程機(jī)制

事件機(jī)制可謂貫穿Node.js整體,這也就解釋了為什么它的速度表現(xiàn)能夠超越任何其它類(lèi)似的現(xiàn)有技術(shù)方案。一旦大家啟動(dòng)了Node.js服務(wù)器,它就會(huì)初始化自身變量,而后進(jìn)行函數(shù)聲明并等待事件發(fā)生。

在這樣一款應(yīng)用程序當(dāng)中存在著主循環(huán),其作用在于監(jiān)聽(tīng)事件從而在某一事件或者全部事件被觸發(fā)之時(shí)觸發(fā)回調(diào)函數(shù)。

http://s4.51cto.com/wyfs02/M02/76/43/wKioL1ZOgqXSpMq6AAT0bP8hCyo519.png

以下代碼示例說(shuō)明了整個(gè)流程的具體實(shí)現(xiàn)方式:

//導(dǎo)入事件模塊

 

  1. var events = require(‘events’); 

//創(chuàng)建一個(gè)eventEmitter對(duì)象

 

  1. var eventEmitter = new events.EventEmitter(); 

5) Node.js擁有足以支持生產(chǎn)活動(dòng)的充足配套工具

在使用Node.js時(shí),大家能夠獲得一切自己在構(gòu)建應(yīng)用程序并利用其實(shí)現(xiàn)***生產(chǎn)效率與性能表現(xiàn)的必要工具。Node.js的工具組合非常齊全,足以幫助大家在無(wú)需額外找尋工具方案的前提下創(chuàng)建切實(shí)有效的應(yīng)用成果。

這是一項(xiàng)堅(jiān)實(shí)的技術(shù)方案,具備應(yīng)當(dāng)具備的一切,這意味著大家能夠直接著手創(chuàng)建應(yīng)用程序并加以運(yùn)行,而無(wú)需在其它準(zhǔn)備工作上浪費(fèi)任何時(shí)間。

6) Node.js允許我們使用一套代碼庫(kù)完成開(kāi)發(fā)

在使用Node.js時(shí),大家可以在應(yīng)用開(kāi)發(fā)過(guò)程當(dāng)中在服務(wù)器與客戶(hù)端內(nèi)使用同一套代碼庫(kù)。這也使得二者之間的數(shù)據(jù)同步成為可能。而在這類(lèi)應(yīng)用當(dāng)中,我推薦大家使用Meteor框架與之相配合。

Meteor是一款出色的框架方案,其允許應(yīng)用用戶(hù)在服務(wù)器與用戶(hù)端運(yùn)行同樣的代碼內(nèi)容。如果大家編寫(xiě)的是客戶(hù)端代碼,其會(huì)自動(dòng)將其保存至數(shù)據(jù)庫(kù),而這部分?jǐn)?shù)據(jù)將會(huì)自動(dòng)反映在服務(wù)器當(dāng)中。在此之后,對(duì)于數(shù)據(jù)內(nèi)容的任何變更都會(huì)同時(shí)被發(fā)送至客戶(hù)端以及服務(wù)器處。以下代碼就明確解釋了這一過(guò)程:

//在瀏覽器內(nèi)直接點(diǎn)擊“submit”后即可保存“name”的值

 

  1. ‘.click .submit’: function(e, tpl) { 
  2.  
  3. Users.update( 
  4.  
  5. { _id: this._id }, 
  6.  
  7. { $set: { name: $(‘.name’).val() }} 
  8.  
  9. ); 
  10.  

7)發(fā)展前景一片光明

相當(dāng)一部分開(kāi)源項(xiàng)目是由技術(shù)志愿者們負(fù)責(zé)維護(hù)的。在這種情況下,否認(rèn)其目前運(yùn)作態(tài)勢(shì)有多么良好,其未來(lái)發(fā)展前景都得不到有效的保障。但Node.js的情況則完全不同。盡管同樣屬于徹頭徹尾的開(kāi)源技術(shù),但其背后擁有著企業(yè)管理者以及贊助商的支持,這種立足于真正企業(yè)的項(xiàng)目無(wú)疑在發(fā)展前景方面更令人放心。

另外,該項(xiàng)目還受到其它多家大型企業(yè)的支持,具體包括雅虎、微軟、PayPal以及其它多家廠商。這意味著它將長(zhǎng)久存在并且值得我們信任并依賴(lài)。

通過(guò)以上七項(xiàng)事實(shí),相信大家已經(jīng)了解到了Node.js的驚人魅力。Web開(kāi)發(fā)人員將在探索過(guò)程中發(fā)現(xiàn)遠(yuǎn)遠(yuǎn)超過(guò)需求與預(yù)期的巨大寶藏,并借此打造出一款出色的應(yīng)用程序。Node.js能夠幫助我們自由發(fā)揮自己的想象力與創(chuàng)造力,而它的易用性也讓它成為最為理想的Web開(kāi)發(fā)選項(xiàng)。

原文標(biāo)題:7 Things To Know About Node.js Before Building Your Web Application

 
責(zé)任編輯:李英杰 來(lái)源: 51cto.com
相關(guān)推薦

2015-12-01 11:04:02

移動(dòng)·開(kāi)發(fā)技術(shù)周刊

2013-05-17 09:41:02

Node.js云應(yīng)用開(kāi)發(fā)IaaS

2023-03-24 15:57:31

Node.js應(yīng)用程序容器

2023-06-16 15:14:57

Node.js容器化開(kāi)發(fā)

2023-10-26 01:28:02

2020-09-04 15:06:04

Docker容器化Node.js

2024-03-27 11:18:02

2012-09-17 11:26:14

IBMdw

2023-03-07 14:31:44

Node.jsPython應(yīng)用程序

2022-09-12 16:02:32

Docker安全Node.js

2020-01-15 14:20:07

Node.js應(yīng)用程序javascript

2024-03-22 11:40:40

Node.jsNodeCRUD

2022-12-14 14:40:27

Node.js開(kāi)發(fā)應(yīng)用程序

2022-05-09 17:33:23

PWA漸進(jìn)式Web應(yīng)用程序離線優(yōu)先

2019-08-29 10:58:02

Web 開(kāi)發(fā)框架

2020-09-22 07:35:42

Node.jsVue.js文件壓縮

2024-02-29 08:32:03

HTTP協(xié)議Web服務(wù)消息隊(duì)列

2014-04-01 11:02:00

Node.jsWeb Socket聊天程序

2021-11-24 08:51:32

Node.js監(jiān)聽(tīng)函數(shù)

2009-07-24 10:41:00

ASP.NET Web
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)