本文轉載自:衆成翻譯
譯者:網絡埋伏紀事
連接:http://www.zcfy.cc/article/1748
原文:https://blog.risingstack.com/node-hero-tutorial-getting-started-with-node-js/node
這是 Node.js 系列教程 Node Hero 的第一篇文章。在這些章節中,將學習如何上手 Node.js 以及如何使用它交付軟件產品。git
本教程從基礎開始 - 不須要之前有 Node.js 知識。本教程的目標是讓你入門 Node.js,確保你能夠理解如何用它來編寫應用程序,因此若是有不清楚的,請立刻問咱們。github
目錄docker
開始使用 Node.js數據庫
使用 NPMnpm
理解異步編程編程
第一個 Node.js 服務器json
Node.js 數據庫教程windows
在第一篇教程中,將學習什麼是 Node.js,如何在電腦上安裝它,如何開始使用它 - 這樣在下一章咱們就能夠作實際開發。咱們開始吧!
官方 Node.js logo
Node.js 是一個創建在 Chrome 的 JavaScript 引擎 V8 之上的 JavaScript 運行時。Node.js 使用一個事件驅動的、非阻塞式的 I/O 模型,讓它輕量而高效。
也就是說:Node.js 提供了用 JavaScript 編寫服務器的可能性,這種服務器具備使人難以置信的性能。正如官方聲明所說:Node.js 是一個使用與 Google Chrome 瀏覽器相同 JavaScript 引擎 V8 的運行時。可是這還不足以支撐 Node.js 的成功 - Node.js 還使用了專一於異步 I/O 的多平臺支持庫 libuv。
官方 libuv logo
從開發者的觀點來看,NodeJS 是單線程的 - 可是在幕後,它是用 libuv 來處理線程、文件系統事件、實現事件循環、使 Node.js 具備線程池特徵 等等。大多數狀況下,咱們不會直接與它交互。
要獲得最新的 Node.js 執行文件,能夠訪問 Node.js 官網:https://nodejs.org/en/download/。
用這種方法,很容易開始 - 可是若是之後要添加更多 Node.js 版本,最好是從使用 Node 的版本管理器 nvm 開始。
一旦安裝了 NVM,就可使用很簡單的 CLI API 來與 Node.js 交互了。
nvm install 4.4
而後,若是想看看試驗性版本:
nvm install 5
要校驗 Node.js 的啓動和運行,請執行:
node --version
若是一切順利,就會返回當前活動的 Node.js 執行文件的版本號。
若是正在開發一個支持 Node.js v4 的項目,能夠用以下命令開始使用它:
nvm use 4
而後能夠用以下命令切換到 Node.js v5:
nvm use 5
好了,如今咱們知道了如何安裝和在 Node.js 版本之間切換 - 可是這有何意義?
自從 Node.js 基金會成立,Node.js 就有一個發佈計劃。這與 Linux 基金會的其它項目很類似。這意味着有兩個發佈版本:穩定版和試驗版。在 Node.js 中,帶有長期支持(LTS)的穩定版是以偶數開始(4,6,8...),而試驗版是從奇數開始(5, 7...)。咱們推薦在生產環境中用 LTS 版本,而用試驗版嘗試新東西。
若是你的操做系統是 Windows,請使用 nvm-windows。
要開始使用 Node.js,先在終端中試試!只須要鍵入 node
,就能夠啓動 Node.js:
$ node >
好了,下面咱們試着打印點什麼:
$ node > console.log('hello from Node.js')
一旦敲了回車,就會獲得下面這樣的信息:
> console.log('hello from Node.js') hello from Node.js undefined
用這個界面隨便玩玩 Node.js - 一般會在這裏嘗試點小代碼片斷,由於我不想把它們放到一個文件中。
*
是時候建立咱們的 Hello Node.js 應用了!
首先建立一個 index.js
文件。打開 IDE(Atom、Sublime、Code 都行),建立一個新文件,而後存爲 index.js
。完成後,複製以下代碼片斷到該文件中:
// index.js console.log('hello from Node.js')
要運行該文件,只需再次打開終端,轉到你存放 index.js 文件的目錄,而後執行 node index.js
命令。你會看到它會生成與前面同樣的輸出 - 在終端上直接打印字符串。
如今你已經有了 index.js
文件,該升級一下游戲了!下面咱們建立更復雜的應用,基於可讀性和可維護性的目的,將源代碼分紅多個 JavaScript 文件。打開 IDE(Atom、Sublime、Code 均可以),建立以下目錄結構(帶有空文件),可是暫時忽略 package.json
,咱們將在下一步自動生成它:
├── app | ├── calc.js | └── index.js ├── index.js └── package.json
每一個 Node.js 項目都是從建立一個 package.json
文件開始 - 能夠把它看成是應用程序及其依賴的 JSON 表示。它包含了應用程序的名稱、做者,以及運行應用程序所需的全部依賴。咱們打算在後面使用 NPM 一章中再講解依賴。
能夠在終端中使用 npm init
命令,以交互式的方式生成 package.json
文件。
鍵入回車後,會被要求給幾個輸入,好比應用程序的名稱、版本、描述等等。不要擔憂,只管敲回車,直到獲得了 JSON 片斷,以及提問 is it ok?
。最後一次敲回車,package.json
就被自動生成了,放在應用程序的文件夾中。若是在 IDE 中打開該文件,就會看到跟以下代碼片斷很類似的代碼:
{ "name": "@risingstack/node-hero", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node index.js" }, "author": "", "license": "ISC" }
給 package.json
添加一個 start
腳本是一個好實踐 - 一旦你像上例同樣這樣作了,就能夠用 npm start
啓動應用。若是要把應用程序部署給 PaaS 提供者,那麼就很方便了 - 它們會識別它,而後用它啓動你的應用程序。
如今回到咱們建立的第一個文件 index.js
。我建議讓這個文件保持很瘦 - 只請求應用程序自己(來自你以前建立的 /app
子目錄下的 index.js 文件)。複製以下腳本到 index.js
文件,而後存盤:
// index.js require('./app/index')
如今到了開始建立實際應用程序的時候了。打開 /app
文件夾下的 index.js 文件,建立一個很簡單的示例:數字數組相加。在本例中,index.js
會只包含咱們要加的數字,執行計算的邏輯須要放在另外一個模塊中。
將以下腳本粘貼到 /app
目錄下的 index.js
中。
// app/index.js const calc = require('./calc') const numbersToAdd = [ 3, 4, 10, 2 ] const result = calc.sum(numbersToAdd) console.log(`The result is: ${result}`)
如今將實際的業務邏輯粘貼到同一文件夾下的 calc.js
文件中。
// app/calc.js function sum (arr) { return arr.reduce(function(a, b) { return a + b }, 0) } module.exports.sum = sum
要檢查你是否成功,就保存這些文件,打開終端,鍵入 npm start
或者 node index.js
。若是你全部東西都作對了,會獲得答案:19
。若是出錯了,就仔細檢查一下控制檯日誌,根據日誌找到問題所在。
在下一章使用 NPM 中,咱們會看看如何使用 JavaScript 的包管理器 NPM。