Node.js可以用來做什麼事?

語言: CN / TW / HK

本文正在參與技術專題徵文Node.js進階之路,點選檢視詳情

Node.js是一項伺服器技術。我們都知道客戶端提出服務請求,而伺服器端負責處理請求並提供服務。而對於網際網路來說,在Node.js之前JavaScript是一項完全的客戶端技術,被用於瀏覽器中實現各種動畫,對DOM的操作等等。而後端,即服務端則是由PHP、Python、Ruby、Java等等語言來實現。Node.js的出現,使得前後端使用同一種語言,統一模型的夢想得以實現。

一直以來看到過很多人解釋node.js是什麼東東,看過非常多種解釋,看了其他人解釋半天還是雲裡霧裡的,直到我聽到這麼一句話:“node.js就是一個前端覺得寫個功能還要等後端搗鼓半天,然後乾脆就自己用javascript把後端搞定的一個東西。” 突然感覺簡單粗暴,一針見血,哈哈哈哈 有沒有這種感覺!

初識TypeScript

從入職新公司開始算,使用typescript已經有半年多了,這是一個創業公司使用nodejs開發的後臺業務管理系統,已經做的很大了,支撐著公司每月千萬人民幣的業務處理。很多懷疑nodejs是否可以開發後臺管理的人的大可以放心使用,美中不足的是nodejs對報表這類資料處理量較大的功能有點力不從心,經常拖垮系統,所以後來使用JAVA代替了這部分功能。

使用感受

其實起初對於typescript開發nodejs我是拒絕的,原因是建立起這個專案的人都走了,而這個專案結構實在是複雜,在windows下環境搭建費了好大精力,尤其是為了使用一個bcrypt加密包,需要安裝Python,C++來編譯,還不能使用nodejs0.12以上版本,最煩人的是每次修改檔案後編譯速度非常慢,這讓我重新體驗了開發JAVA時期的痛苦。而且服務啟動方法也是前人自己編寫shell指令碼來同時編譯前端檔案和後端檔案。並沒有使用nodemon,supervisor這種監控工具。後來折騰發現可以直接使用vscode單獨編譯ts檔案,一般12秒就編譯完成,這與我之前的專案1秒修改重啟相比還是慢了很多,不過也免強只能接受。所以基於這些不好的體驗我很不喜歡typescript,如此麻煩和JAVA開發有什麼區別。

重新認識

有很多人說 Node.js 的語法太靈活,不易維護,缺少型別化,難以重構,但是這些問題早已被 Typescript 解決掉了。純nodejs寫起來確實不如typescript爽,主要是純nodejs在webstorm和vscode上語法提示和錯誤提示較弱,而typescript則可以很好的提示並且在開發過程中就能發現一些很低階錯誤,不用等到執行時才發現。尤其是對ES6的支援比較完整,甚至可以使用async,await這些ES7提案中的特性。有一段時間也是很想練習一下,摸索了半天總算把demo專案跑起來了。