官术网_书友最值得收藏!

1.3 Node.js的應(yīng)用場景

1.3.1 Node.js優(yōu)缺點

在介紹應(yīng)用場景之前,需要了解一下Node.js的利弊。只有在合適的場景下使用Node.js,才能達(dá)到高性能。

Node.js優(yōu)點:

· 事件驅(qū)動、異步編程,在I/O密集型場景下有著極高的性能。

· 輕量高效,資源占用率低。

· 使用JavaScript(JS)作為應(yīng)用層語言,語言門檻低,對于擁有JS基礎(chǔ)的人來說,幾乎沒有門檻。

Node.js缺點:

· 單進(jìn)程,一旦JS線程出現(xiàn)未處理的錯誤,進(jìn)程會退出,服務(wù)會終止。

· 單線程(特指JS線程),一旦JS線程上出現(xiàn)耗時的CPU計算(加解密之類的計算),JS線程將出現(xiàn)阻塞,會拖慢事件輪詢。

1.3.2 應(yīng)用場景

由于較低的語言門檻以及強大的I/O處理能力,大致有以下場景是Node.js能夠勝任的。

1.Restful API

這是Node.js最理想的應(yīng)用場景,可以處理數(shù)萬條連接,本身沒有太多的邏輯,只需要調(diào)用請求API、組織數(shù)據(jù)進(jìn)行返回即可。它本質(zhì)上只是從某個數(shù)據(jù)庫或緩存中查找一些值并將它們組成一個響應(yīng)。由于響應(yīng)是少量的文本,入站請求也是少量的文本,因此流量不高,甚至一臺機器也可以處理最繁忙的API需求。社區(qū)有Koa、Express、hapi等框架提供該功能。

2.實時WebSocket應(yīng)用

大量用戶同時在線,互相收發(fā)數(shù)據(jù),但是幾乎不需要對數(shù)據(jù)進(jìn)行處理,Node.js只需要接收數(shù)據(jù)然后轉(zhuǎn)發(fā)。社區(qū)有著名的socket.io庫來提供WebSocket功能。

3.前端工具鏈

由于采用的語言是JavaScript,并且擁有大量的第三方模塊,在前端工程師手里可以開發(fā)一整套前端工具鏈,包括壓縮、混淆、模塊化等。比如業(yè)界著名的Webpack。

4.桌面開發(fā)

基于開源的Chromium和Node.js,開發(fā)者可以通過HTML/CSS/JS來構(gòu)建桌面端應(yīng)用程序,業(yè)界著名的有Electron和node-webkit。

主站蜘蛛池模板: 延边| 肇源县| 鄂伦春自治旗| 漯河市| 乐昌市| 华池县| 张家川| 开原市| 镇沅| 祥云县| 娄底市| 龙山县| 抚远县| 鸡西市| 从江县| 许昌市| 福鼎市| 安达市| 大同县| 沂水县| 霍林郭勒市| 长治市| 黄石市| 陇川县| 平阴县| 大庆市| 渝中区| 蒙城县| 桃江县| 平遥县| 宜丰县| 黄大仙区| 莱阳市| 合山市| 新乡县| 长宁县| 合阳县| 张家港市| 中方县| 水城县| 贵南县|