成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【Node Hero】1. 開始使用 Node.js

hqman / 2254人閱讀

摘要:使用一個(gè)事件驅(qū)動(dòng)的非阻塞式的模型,讓它輕量而高效。也就是說提供了用編寫服務(wù)器的可能性,這種服務(wù)器具有令人難以置信的性能。正如官方聲明所說是一個(gè)使用與瀏覽器相同引擎的運(yùn)行時(shí)。這意味著有兩個(gè)發(fā)布版本穩(wěn)定版和試驗(yàn)版。

本文轉(zhuǎn)載自:眾成翻譯
譯者:網(wǎng)絡(luò)埋伏紀(jì)事
鏈接:http://www.zcfy.cc/article/1748
原文:https://blog.risingstack.com/node-hero-tutorial-getting-started-with-node-js/

這是 Node.js 系列教程 Node Hero 的第一篇文章。在這些章節(jié)中,將學(xué)習(xí)如何上手 Node.js 以及如何使用它交付軟件產(chǎn)品。

本教程從基礎(chǔ)開始 - 不需要以前有 Node.js 知識(shí)。本教程的目標(biāo)是讓你入門 Node.js,確保你可以理解如何用它來編寫應(yīng)用程序,所以如果有不清楚的,請(qǐng)馬上問我們。

目錄

開始使用 Node.js

使用 NPM

理解異步編程

第一個(gè) Node.js 服務(wù)器

Node.js 數(shù)據(jù)庫教程

Node.js request 模塊教程

Node.js 項(xiàng)目結(jié)構(gòu)教程

Node.js 身份驗(yàn)證 - 使用 Passport.js

Node.js 單元測(cè)試教程

調(diào)試 Node.js 應(yīng)用程序

Node.js 安全教程

如何部署 Node.js 應(yīng)用程序

監(jiān)控 Node.js 應(yīng)用程序

在第一篇教程中,將學(xué)習(xí)什么是 Node.js,如何在電腦上安裝它,如何開始使用它 - 這樣在下一章我們就可以做實(shí)際開發(fā)。我們開始吧!

Node.js 概述

官方 Node.js logo

Node.js 是一個(gè)建立在 Chrome 的 JavaScript 引擎 V8 之上的 JavaScript 運(yùn)行時(shí)。Node.js 使用一個(gè)事件驅(qū)動(dòng)的非阻塞式的 I/O 模型,讓它輕量而高效。

也就是說:Node.js 提供了用 JavaScript 編寫服務(wù)器的可能性,這種服務(wù)器具有令人難以置信的性能。正如官方聲明所說:Node.js 是一個(gè)使用與 Google Chrome 瀏覽器相同 JavaScript 引擎 V8 的運(yùn)行時(shí)。但是這還不足以支撐 Node.js 的成功 - Node.js 還使用了專注于異步 I/O 的多平臺(tái)支持庫 libuv。

官方 libuv logo

從開發(fā)者的觀點(diǎn)來看,NodeJS 是單線程的 - 但是在幕后,它是用 libuv 來處理線程、文件系統(tǒng)事件、實(shí)現(xiàn)事件循環(huán)、使 Node.js 具有線程池特征 等等。大多數(shù)情況下,我們不會(huì)直接與它交互。

安裝 Node.js

要得到最新的 Node.js 執(zhí)行文件,可以訪問 Node.js 官網(wǎng):https://nodejs.org/en/download/。

用這種方法,很容易開始 - 但是如果以后要添加更多 Node.js 版本,最好是從使用 Node 的版本管理器 nvm 開始。

一旦安裝了 NVM,就可以使用很簡單的 CLI API 來與 Node.js 交互了。

安裝 Node.js 版本
nvm install 4.4  

然后,如果想看看試驗(yàn)性版本:

nvm install 5  

要校驗(yàn) Node.js 的啟動(dòng)和運(yùn)行,請(qǐng)執(zhí)行:

node --version  

如果一切順利,就會(huì)返回當(dāng)前活動(dòng)的 Node.js 執(zhí)行文件的版本號(hào)。

使用 Node.js 版本

如果正在開發(fā)一個(gè)支持 Node.js v4 的項(xiàng)目,可以用如下命令開始使用它:

nvm use 4  

然后可以用如下命令切換到 Node.js v5:

nvm use 5  

好了,現(xiàn)在我們知道了如何安裝和在 Node.js 版本之間切換 - 但是這有何意義?

自從 Node.js 基金會(huì)成立,Node.js 就有一個(gè)發(fā)布計(jì)劃。這與 Linux 基金會(huì)的其它項(xiàng)目很相似。這意味著有兩個(gè)發(fā)布版本:穩(wěn)定版和試驗(yàn)版。在 Node.js 中,帶有長期支持(LTS)的穩(wěn)定版是以偶數(shù)開始(4,6,8...),而試驗(yàn)版是從奇數(shù)開始(5, 7...)。我們推薦在生產(chǎn)環(huán)境中用 LTS 版本,而用試驗(yàn)版嘗試新東西。

如果你的操作系統(tǒng)是 Windows,請(qǐng)使用 nvm-windows。

Hello World

要開始使用 Node.js,先在終端中試試!只需要鍵入 node,就可以啟動(dòng) Node.js:

$ node
>

好了,下面我們?cè)囍蛴↑c(diǎn)什么:

$ node
> console.log("hello from Node.js")

一旦敲了回車,就會(huì)得到下面這樣的信息:

> console.log("hello from Node.js")
hello from Node.js  
undefined  

用這個(gè)界面隨便玩玩 Node.js - 通常會(huì)在這里嘗試點(diǎn)小代碼片段,因?yàn)槲也幌氚阉鼈兎诺揭粋€(gè)文件中。

*

是時(shí)候創(chuàng)建我們的 Hello Node.js 應(yīng)用了!

首先創(chuàng)建一個(gè) index.js 文件。打開 IDE(Atom、Sublime、Code 都行),創(chuàng)建一個(gè)新文件,然后存為 index.js。完成后,復(fù)制如下代碼片段到該文件中:

// index.js
console.log("hello from Node.js")  

要運(yùn)行該文件,只需再次打開終端,轉(zhuǎn)到你存放 index.js 文件的目錄,然后執(zhí)行 node index.js 命令。你會(huì)看到它會(huì)生成與前面一樣的輸出 - 在終端上直接打印字符串。

模塊化你的應(yīng)用程序

現(xiàn)在你已經(jīng)有了 index.js 文件,該升級(jí)一下游戲了!下面我們創(chuàng)建更復(fù)雜的應(yīng)用,基于可讀性和可維護(hù)性的目的,將源代碼分成多個(gè) JavaScript 文件。打開 IDE(Atom、Sublime、Code 都可以),創(chuàng)建如下目錄結(jié)構(gòu)(帶有空文件),但是暫時(shí)忽略 package.json,我們將在下一步自動(dòng)生成它:

├── app
|   ├── calc.js
|   └── index.js
├── index.js
└── package.json

每個(gè) Node.js 項(xiàng)目都是從創(chuàng)建一個(gè) package.json 文件開始 - 可以把它當(dāng)作是應(yīng)用程序及其依賴的 JSON 表示。它包含了應(yīng)用程序的名稱、作者,以及運(yùn)行應(yīng)用程序所需的所有依賴。我們打算在后面使用 NPM 一章中再講解依賴。

可以在終端中使用 npm init 命令,以交互式的方式生成 package.json 文件。

鍵入回車后,會(huì)被要求給幾個(gè)輸入,比如應(yīng)用程序的名稱、版本、描述等等。不要擔(dān)心,只管敲回車,直到得到了 JSON 片段,以及提問 is it ok?。最后一次敲回車,package.json 就被自動(dòng)生成了,放在應(yīng)用程序的文件夾中。如果在 IDE 中打開該文件,就會(huì)看到跟如下代碼片段很相似的代碼:

{
  "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 添加一個(gè) start 腳本是一個(gè)好實(shí)踐 - 一旦你像上例一樣這樣做了,就可以用 npm start 啟動(dòng)應(yīng)用。如果要把應(yīng)用程序部署給 PaaS 提供者,那么就很方便了 - 它們會(huì)識(shí)別它,然后用它啟動(dòng)你的應(yīng)用程序。

現(xiàn)在回到我們創(chuàng)建的第一個(gè)文件 index.js。我建議讓這個(gè)文件保持很瘦 - 只請(qǐng)求應(yīng)用程序本身(來自你之前創(chuàng)建的 /app 子目錄下的 index.js 文件)。復(fù)制如下腳本到 index.js 文件,然后存盤:

// index.js
require("./app/index")  

現(xiàn)在到了開始創(chuàng)建實(shí)際應(yīng)用程序的時(shí)候了。打開 /app 文件夾下的 index.js 文件,創(chuàng)建一個(gè)很簡單的示例:數(shù)字?jǐn)?shù)組相加。在本例中,index.js 會(huì)只包含我們要加的數(shù)字,執(zhí)行計(jì)算的邏輯需要放在另一個(gè)模塊中。

將如下腳本粘貼到 /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}`)  

現(xiàn)在將實(shí)際的業(yè)務(wù)邏輯粘貼到同一文件夾下的 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。如果你所有東西都做對(duì)了,會(huì)得到答案:19。如果出錯(cuò)了,就仔細(xì)檢查一下控制臺(tái)日志,根據(jù)日志找到問題所在。

接下來

在下一章使用 NPM 中,我們會(huì)看看如何使用 JavaScript 的包管理器 NPM。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84984.html

相關(guān)文章

  • Node Hero】7. Node.js 項(xiàng)目結(jié)構(gòu)

    摘要:本教程會(huì)學(xué)習(xí)如何正確組織一個(gè)項(xiàng)目的結(jié)構(gòu),從而在應(yīng)用程序開始增長時(shí)避免混亂。項(xiàng)目結(jié)構(gòu)的五個(gè)基本規(guī)則組織項(xiàng)目有不少可能的方式并且每種已知的方式都有其興衰。過去在,我們有機(jī)會(huì)創(chuàng)建各種規(guī)模的高效應(yīng)用程序,也獲得了大量關(guān)于項(xiàng)目結(jié)構(gòu)注意事項(xiàng)的見解。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1756原文:https://blog.rising...

    張紅新 評(píng)論0 收藏0
  • Node Hero】5. Node.js 數(shù)據(jù)庫教程

    摘要:是一種設(shè)計(jì)用于關(guān)系型數(shù)據(jù)庫的查詢語言。另一方面,數(shù)據(jù)庫在最近十年變得相當(dāng)流行。大多數(shù)數(shù)據(jù)庫都有驅(qū)動(dòng)程序可以用,它們?cè)谏弦灿袔?。我們已?jīng)完成了在中使用數(shù)據(jù)庫所必須知道的所有基礎(chǔ)知識(shí)。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1751原文:https://blog.risingstack.com/node-js-database-t...

    Hujiawei 評(píng)論0 收藏0
  • Node Hero】3. 理解異步編程

    摘要:異步編程在傳統(tǒng)編程實(shí)踐中,大多數(shù)操作都是同步發(fā)生的。中的異步編程異步是一種輸入輸出處理的形式,它允許在傳輸完成之前,其它處理能繼續(xù)進(jìn)行。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1759原文:https://blog.risingstack.com/node-hero-async-programming-in-node-js/ ...

    kevin 評(píng)論0 收藏0
  • Node Hero】2. 使用 NPM

    摘要:網(wǎng)站和使用同樣的注冊(cè)庫來顯示模塊以及查找模塊。使用在上一章開始使用中,當(dāng)創(chuàng)建文件時(shí),已經(jīng)遇到了。此外,全局命名空間只包含公共模塊。通過引入作用域包來解決此問題。下一步異步編程下一章學(xué)習(xí)使用回調(diào)和實(shí)現(xiàn)異步編程的原理。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1749原文:https://blog.risingstack.com/n...

    CarterLi 評(píng)論0 收藏0
  • Node Hero】8. 使用 Passport.js 進(jìn)行 Node.js 身份驗(yàn)證

    摘要:本文轉(zhuǎn)載自眾成翻譯譯者網(wǎng)絡(luò)埋伏紀(jì)事鏈接原文本教程中將學(xué)習(xí)如何使用和實(shí)現(xiàn)一個(gè)本地身份驗(yàn)證策略。我們將有一個(gè)用戶頁,一個(gè)備注頁,和一些與身份驗(yàn)證相關(guān)的功能。下一步下一章主要涉及應(yīng)用程序的單元測(cè)試。你會(huì)學(xué)習(xí)單元測(cè)試測(cè)試金字塔測(cè)試替代等概念。 本文轉(zhuǎn)載自:眾成翻譯譯者:網(wǎng)絡(luò)埋伏紀(jì)事鏈接:http://www.zcfy.cc/article/1755原文:https://blog.risings...

    CoderStudy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

hqman

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<