新聞中心
毫無疑問,軟件解決方案很少在真空環(huán)境下進行,這意味著我們將不可避免地要同集成工作打交道。簡單的集成當然不成問題,然而如果集成需求較為復雜,那么需要接入現(xiàn)有應用中的第三方產(chǎn)品可能多達數(shù)十種??紤]到具體定制與業(yè)務邏輯的復雜性,不同廠商的API開放性與全面性條件可能引發(fā)令人頭痛的難題。

涇縣網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,涇縣網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為涇縣上千多家提供企業(yè)網(wǎng)站建設(shè)服務。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務好的涇縣做網(wǎng)站的公司定做!
為了完成相關(guān)集成工作,歷史上曾出現(xiàn)了一系列解決方案,包括DOS批處理文件、Linux shell腳本、Perl以及Python等等。但如今,Node.js開始廣泛普及,并成為眾多從業(yè)者的主流選項。具體原因,則分為以下五點。
1. Node.js擁有通用性優(yōu)勢
憑借著JavaScript的超高普及度,Node.js亦擁有可觀的用戶群體。正因為JS的直觀性與風格包容能力,Node.js得以輕松適應服務器端開發(fā)需求,并享受規(guī)模巨大的JS技術(shù)社區(qū)的有力支持。
此外,在集成領(lǐng)域,廠商本身亦越來越多地使用著JS及其相關(guān)產(chǎn)品。通過這種自給自足的對接方式,外加巨大的JS技能掌握者基礎(chǔ),Node.js表現(xiàn)出***的易用性特征。
另外,Node.js采取運行時內(nèi)編譯的處理方式,意味著其代碼具備可讀性。再有,Node.js的運行性能亦相當出色。
2. Node.js擁有大量模塊
Node.js之所以如此流行,同樣歸功于廣闊的開發(fā)者社區(qū)能夠生不逢時其代碼以實現(xiàn)模塊化功能,而后結(jié)合require()聲明進行解釋。其基本格式為:
- var myName = require(‘external-module’);
目前已經(jīng)發(fā)布的模塊數(shù)量極為驚人。這意味著大家能夠輕松找到大量適合自身功能需求的現(xiàn)成代碼,并通過數(shù)行粘合代碼將其引入自身項目。MySQL與MongoDB就是其中的典型范例。
各類廠商亦加入到了這一陣營中來。目前眾多打包器與客戶端皆可通過Node模塊的方式交付至工具與應用程序。Twitter的客戶端“SDK”就是其中一例。
下面我們來看如何輕松為Moogsoft AIOps系統(tǒng)的用戶發(fā)布一項示例模塊:
- var MoogEvent =require(‘node-moog’).MoogEvent;
- myEvent =newMoogEvent();
- myEvent.description=’My new description’;
模塊幫助廠商快速公布API及功能,并將其與本地Node.js代碼輕松對接。
3. JSON具備原生性質(zhì)
JSON,即Javascript Object Notation,是一種輕量級數(shù)據(jù)交換格式,其擁有眾多集成化優(yōu)勢。簡單、易學,且能夠適應幾乎任何用例類型。
JSON具備人類可讀性,適用于快速部署與結(jié)果維護。另外,JSON比XML更易于解釋,并開始逐漸取代XML成為客觀層面的數(shù)據(jù)交換格式。目前主流云供應商幾乎普遍采用JSON作為默認的有效載荷。
更值得一提的是,JSON原生于Node.js之內(nèi)。全部JavaScript值——除原語之外——皆屬于對象,且JS當中各類復雜或分層對象皆可以JSON形式描述。這意味著我們僅需幾步即可處理JSON載荷。
示例載荷:
- {“title”:”example”,”contents”:”some stuff”}
可因此處理為:
- var message = JSON.parse(payload);
- console.log(message.title); // Will output “example”
這種對外部系統(tǒng)間交換數(shù)據(jù)以代碼內(nèi)方式進行處理的能力,無疑能夠極大加快集成工作的執(zhí)行速度。
4. REST同樣原生存在
雖然REST在客觀層面講不算原生,但其實際效果卻幾乎與原生無異。
Node.js能夠原生支持HTTP/HTTPS,因此能夠在RESTful端點上輕松執(zhí)行GET或者POST。即使相關(guān)廠商未提供項目必需的js模塊,其至少能夠提供示例代碼以供用戶復制及粘貼。
另外,大家亦可利用多種Node模塊在隱藏復雜底層機制的同時,實現(xiàn)全面的REST連接能力。(Node.js的HTTP/HTTPS API實際上相當?shù)讓?,旨在確保不存在任何功能限制。)
為什么REST如此重要?正如JSON已經(jīng)在客觀上成為默認數(shù)據(jù)交換格式,RESTful Web服務同樣快速成為最重要的Web友好協(xié)議——對于不少廠商而言,REST已然成為API的同義詞。
再有,Node.js的HTTP/HTTPS模塊還提供服務器功能,意味著Node.js應用程序能夠監(jiān)聽并響應各類REST方法。
如果大家希望發(fā)揮應用程序?qū)敵鯮EST的支持能力并提供復雜及豐富的Web服務,則Express Node模塊值得一觀——其能夠快速輕松地完成Web服務器編寫。再有,REST及其機器數(shù)據(jù)表親WebHook亦適用于構(gòu)建系統(tǒng)間API以及各類命令與工具。
5. 打包
Node.js模塊易于發(fā)布及訪問的特性成為其擁有極高人氣的另一個理由。
在Node.js內(nèi)置軟件包管理器NPM的幫助下,Node模塊可實現(xiàn)快速發(fā)布與訪問。貢獻者創(chuàng)建的package.ison文件中包含各項細節(jié)與依賴性,并可被推送至NPM公共倉庫中供各類訪問者使用。
大家使用以下命令即可訪問由我們編寫的模塊:
- $ npm install node-moog
對于像我這樣的Unix老用戶來說,命令行同樣非常重要。而Node.js能夠輕松創(chuàng)建各類命令行工具,同時快速添加各類參數(shù)并由NPM實施安裝。
舉例來說,我們可以通過以下命令安裝一款名為myTool的CLI工具:
- $ npm install –g myTool
此命令將對myTool進行全局安裝。這意味著Node.js非常適合創(chuàng)建沙箱打包器、腳本、歸檔以及報告等方案。
除了之前提到的五項理由,隨著谷歌V8 JavaScript引擎的每一次迭代,Node.js性能亦將同步提升。雖然我同樣尊重Python,然而Node.js已經(jīng)成為我們目前的***選項——不知道大家意下如何?
標題名稱:Node.js在復雜集成場景下占據(jù)統(tǒng)治地位的五個理由
文章源于:http://fisionsoft.com.cn/article/djhphoi.html


咨詢
建站咨詢
