回顧一下從2009年至今的Node.js的歷史
信不信由你,Node.js僅僅只有9年的歷史。
相比之下,JavaScript已有23年的歷史了,而我們所知道的網絡(在Mosaic引入之後)已有25年的歷史了。
9年對於技術來說是很少的時間,但是Node.js似乎永遠存在。
從成立僅2年的早期開始,我就很高興與Node一起工作,儘管可以獲得的信息很少,但是您已經可以感覺到這是一件大事。
在這篇文章中,我想勾勒出Node歷史上的全景圖,以便對事物進行透視。
一點歷史
JavaScript是一種在Netscape中創建的編程語言,它是一種腳本工具,用於在其瀏覽器中操縱網頁,Netscape導航器。
Netscape的業務模型的一部分是出售Web服務器,其中包括一個稱為網景LiveWire,可以使用服務器端JavaScript創建動態頁面。因此,Node.js並未引入服務器端JavaScript的想法,但是它像JavaScript一樣古老-但是當時還沒有成功。
導致Node.js興起的一個關鍵因素是計時。幾年以來,JavaScript開始被認為是一種嚴肅的語言,這要感謝“ Web 2.0”應用程序,該應用程序向世界展示了Web上的現代體驗(例如Google Maps或GMail)。
由於瀏覽器競爭的激烈,JavaScript引擎的性能標準大為提高,但該競爭仍在繼續。每個主要瀏覽器背後的開發團隊每天都在努力工作,以為我們提供更好的性能,這對於JavaScript作為平台是一個巨大的勝利。 Node.js在後台使用的V8引擎就是其中之一,尤其是Chrome JS引擎。
但是,當然,僅由於運氣或時機原因,Node.js並不流行。它引入了有關如何在服務器上使用JavaScript編程的許多創新思想。
2009
- Node.js誕生了
- 第一種形式npm被建造
2010
2011
- npm達到1.0
- 大公司開始採用Node:LinkedIn,Uber哈皮出生
2012
- 採納非常迅速
2013
- 第一個使用Node:Ghost的大型博客平台
- 考阿出生
2014
- 大叉子:io.js是Node.js的主要分支,目的是引入ES6支持並加快遷移速度
2015
- 這Node.js基礎出生
- IO.js合併回Node.js
- npm引入了私有模塊
- Node 4 (no 1, 2, 3 versions were previously released)
2016
2017
- npm更加註重安全性
- 節點8-9
- HTTP/2
- V8在其測試套件中引入了Node,除了Chrome之外,還正式使Node成為JS引擎的目標
- 每週30億次npm下載
2018
- 節點10-11
- ES模塊.mjs實驗支持
2019
- 節點12-13
- 從事於Deno開始通過現代JavaScript支持將服務器端JS遷移到下一個十年
2020
- 節點14-15
- GitHub(微軟所有)收購NPM
免費下載我的Node.js手冊
更多節點教程:
- npm軟件包管理器簡介
- Node.js簡介
- 使用Axios的HTTP請求
- 在何處託管Node.js應用
- 使用Node.js與Google Analytics(分析)API進行交互
- npx節點包運行器
- package.json指南
- npm在哪里安裝軟件包?
- 如何更新Node.js
- 如何使用或執行使用npm安裝的軟件包
- package-lock.json文件
- 使用npm的語義版本控制
- 您是否應該將node_modules文件夾提交到Git?
- 將所有Node依賴項更新到最新版本
- 使用Node.js解析JSON
- 查找npm軟件包的安裝版本
- Node.js流
- 安裝較舊版本的npm軟件包
- 在Node中獲取當前文件夾
- 如何在Node中記錄對象
- 使用導出從Node文件公開功能
- 節點和瀏覽器之間的區別
- 使用Node發出HTTP POST請求
- 使用Node獲取HTTP請求主體數據
- 節點緩衝區
- Node.js的簡要歷史
- 如何安裝Node.js
- 使用Node您需要知道多少JavaScript?
- 如何使用Node.js REPL
- 節點,從命令行接受參數
- 使用Node輸出到命令行
- 接受來自Node中命令行的輸入
- 使用`npm uninstall`來卸載npm軟件包。
- npm全局或本地軟件包
- npm依賴項和devDependencies
- Node.js事件循環
- 了解process.nextTick()
- 了解setImmediate()
- 節點事件發射器
- 建立一個HTTP服務器
- 使用Node發出HTTP請求
- Node fs模塊
- 使用Axios的Node中的HTTP請求
- 使用Node讀取文件
- 節點文件路徑
- 用Node寫入文件
- 節點文件統計
- 在Node中使用文件描述符
- 在Node中使用文件夾
- 節點路徑模塊
- Node http模塊
- 將WebSockets與Node.js結合使用
- 使用MySQL和Node的基礎知識
- Node.js中的錯誤處理
- 哈巴狗指南
- 如何從Node.js讀取環境變量
- 如何從Node.js程序退出
- Node os模塊
- 節點事件模塊
- 節點,開發與生產之間的區別
- 如何檢查Node.js中是否存在文件
- 如何在Node.js中創建一個空文件
- 如何使用Node.js刪除文件
- 如何使用Node.js獲取文件的最後更新日期
- 如何在JavaScript中確定日期是否為今天
- 如何將JSON對象寫入Node.js中的文件
- 為什麼要在下一個項目中使用Node.js?
- 從任何文件夾運行Web服務器
- 如何將MongoDB與Node.js結合使用
- 使用Chrome DevTools調試Node.js應用
- 什麼是pnpm?
- Node.js運行時v8選項列表
- 使用npm時如何解決“缺少寫訪問權限”錯誤
- 如何在Node.js中啟用ES模塊
- 如何使用Node.js生成子進程
- 如何在Express中同時獲取已解析的正文和原始正文
- 如何在Node.js中處理文件上傳
- 節點模塊中的對等依賴性是什麼?
- 如何使用Node.js編寫CSV文件
- 如何使用Node.js讀取CSV文件
- 節點核心模塊
- 使用Node.js一次增加多個文件夾的數量
- 如何將畫布打印到數據URL
- 如何使用Node.js和Canvas創建和保存圖像
- 如何使用Node.js下載圖像
- 如何在Node.js中批量重命名文件
- 如何獲取Node中文件夾中所有文件的名稱
- 如何使用Promise和基於Node.js回調的等待功能
- 如何在本地測試NPM軟件包
- 如何在運行時檢查當前的Node.js版本
- 如何使用Sequelize與PostgreSQL交互
- 使用Node.js服務HTML頁面
- 如何解決Node.js中的util.pump不是函數錯誤