Setting up a Node development environment

2018-05-15 17:26 更新
先決條件: 知道如何打開終端/命令行。 知道如何在開發(fā)計(jì)算機(jī)的操作系統(tǒng)上安裝軟件包。
目的: 在您的計(jì)算機(jī)上為Express(X.XX)設(shè)置開發(fā)環(huán)境。

Express開發(fā)環(huán)境概述

可以非常容易地設(shè)置您的計(jì)算機(jī),以便開始開發(fā)Web應(yīng)用程序。 本節(jié)提供了所需工具的概述,解釋了在Ubuntu,Mac OS X和Windows上安裝Node(和Express)的一些最簡(jiǎn)單的方法,并說(shuō)明如何測(cè)試安裝。

什么是Express開發(fā)環(huán)境?

開發(fā)環(huán)境包括安裝 Nodejs , NPM包管理器 >在本地計(jì)算機(jī)上。

包管理器是從預(yù)先準(zhǔn)備的二進(jìn)制包,安裝程序,操作系統(tǒng)包管理器或從源(如下面部分所示)安裝的。 網(wǎng)絡(luò)應(yīng)用程序(以及其他庫(kù),如模板引擎,數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,身份驗(yàn)證中間件,中間件以提供靜態(tài)文件)的依賴關(guān)系, 等等。)

href ="/ en-US / Apps / Fundamentals / Modern_web_app_architecture / MVC_architecture"> MVC模式。 應(yīng)用程序生成器是可選的,因?yàn)槟恍枰褂么斯ぞ邅?lái)創(chuàng)建使用Express的應(yīng)用程序,或構(gòu)造具有相同體系結(jié)構(gòu)布局或依賴關(guān)系的Express應(yīng)用程序。 我們將使用它,因?yàn)樗谷腴T容易得多,并促進(jìn)模塊化應(yīng)用程序結(jié)構(gòu)。

注意:與其他一些網(wǎng)絡(luò)框架不同,開發(fā)環(huán)境不包含單獨(dú)的開發(fā)網(wǎng)絡(luò)服務(wù)器。 / 網(wǎng)絡(luò)應(yīng)用程序創(chuàng)建并運(yùn)行自己的web服務(wù)器!

還有其他外圍工具是典型開發(fā)環(huán)境的一部分,包括文本編輯器或用于編輯代碼的IDE,以及源代碼控制管理工具,例如 ://git-scm.com/"class ="external"> Git 安全管理您的代碼的不同版本。 我們假設(shè)您已經(jīng)安裝了這些工具(特別是文本編輯器)。

支持哪些操作系統(tǒng)?

可以在Windows,Mac OS X,Linux,Docker等許多"風(fēng)格"上運(yùn)行(nodejs上有一個(gè)完整的列表 / en / download /"class ="external">下載頁(yè))。 幾乎任何個(gè)人計(jì)算機(jī)應(yīng)該具有在開發(fā)期間運(yùn)行Node所必需的性能。

在本文中,我們提供了針對(duì)Windows,Mac OS X和Ubuntu Linux的安裝說(shuō)明。

你應(yīng)該使用什么版本的Node / Express?

有很多版本的Node - 較新的版本包含錯(cuò)誤修復(fù),支持更多最新版本的ECMAScript (JavaScript)標(biāo)準(zhǔn),以及對(duì)Node API的改進(jìn)。

一般來(lái)說(shuō),您應(yīng)該使用最新的 LTS(長(zhǎng)期支持)版本,因?yàn)檫@將比"當(dāng)前"版本更穩(wěn)定,但仍具有相對(duì)較新的功能(仍在積極維護(hù))。 如果您需要LTS版本中不存在的功能,則應(yīng)使用當(dāng)前版本。

對(duì)于 ,您應(yīng)始終使用最新版本。

數(shù)據(jù)庫(kù)和其他依賴關(guān)系?

其他依賴項(xiàng),例如數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,模板引擎,認(rèn)證引擎等是應(yīng)用程序的一部分,并且使用NPM包管理器導(dǎo)入到應(yīng)用程序環(huán)境中。 我們將在后面的特定于應(yīng)用程序的文章中討論它們。

安裝節(jié)點(diǎn)

要使用Express ,您必須先安裝 Nodejs 節(jié)點(diǎn)程序包管理器(NPM)。 以下部分介紹了在Ubuntu Linux 16.04,Mac OS X和Windows 10上安裝Nodejs的長(zhǎng)期支持(LTS)版本的最簡(jiǎn)單方法。

提示:以下部分顯示了在我們的目標(biāo)操作系統(tǒng)平臺(tái)上安裝 Node NPM 的最簡(jiǎn)單方法。 如果您使用其他操作系統(tǒng),或者只想查看當(dāng)前平臺(tái)的一些其他方法,請(qǐng)參閱 >通過(guò)軟件包管理器安裝Node.js (nodejs.org)。

Windows和Mac OS X

在Windows和Mac OS X上安裝 Node NPM 非常簡(jiǎn)單,因?yàn)槟恍枋褂锰峁┑陌惭b程序:

  1. Download the required installer:
    1. Go to?https://nodejs.org/en/
    2. Select the button to download the LTS build that is "Recommended for most users".
  2. Install Node by double-clicking on the downloaded file and following the installation prompts.

Ubuntu 16.04

安裝最新的LTS版本的Node 6.x最簡(jiǎn)單的方法是使用包管理器從Ubuntu 二進(jìn)制分發(fā)庫(kù)獲取它。 這可以很簡(jiǎn)單地通過(guò)在終端上運(yùn)行以下兩個(gè)命令來(lái)完成:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

警告:不要直接從正常的Ubuntu存儲(chǔ)庫(kù)安裝,因?yàn)樗鼈儼浅Ef版本的節(jié)點(diǎn)。

    測(cè)試Nodejs和NPM安裝

    安裝測(cè)試該節(jié)點(diǎn)的最簡(jiǎn)單方法是在終端/命令提示符中運(yùn)行"version"命令,并檢查是否返回了版本字符串:

    >node -v
    v6.9.1

    還應(yīng)安裝 Nodejs 包管理器 NPM ,并可以以相同的方式進(jìn)行測(cè)試:

    >npm -v
    3.10.8

    作為一個(gè)稍微更激動(dòng)人心的測(cè)試,讓我們創(chuàng)建一個(gè)非?;镜?純節(jié)點(diǎn)"服務(wù)器,當(dāng)您在瀏覽器中訪問(wèn)正確的URL時(shí),在瀏覽器中打印出"Hello World":

    1. Copy the following text into a file named hellonode.js. This uses only Node features (not Express):
      //Load HTTP module
      var http = require("http");
      
      //Create HTTP server and listen on port 8000 for requests
      http.createServer(function (request, response) {
      
         // Set the response HTTP header with HTTP status and Content type
         response.writeHead(200, {'Content-Type': 'text/plain'});
         
         // Send the response body "Hello World"
         response.end('Hello World\n');
      }).listen(8000);
      
      // Print URL for accessing server
      console.log('Server running at http://127.0.0.1:8000/')
      

      代碼導(dǎo)入"http"模塊,并使用它來(lái)創(chuàng)建一個(gè)服務(wù)器( createServer()),用于偵聽(tīng)端口8000上的HTTP請(qǐng)求。腳本然后向控制臺(tái)打印一個(gè)消息, 可以使用測(cè)試服務(wù)器。 createServer()函數(shù)將一個(gè)回調(diào)函數(shù)作為參數(shù),該函數(shù)在接收到HTTP請(qǐng)求時(shí)被調(diào)用 - 這只返回HTTP狀態(tài)碼為200("OK")的響應(yīng),而plain 文本"Hello World"。

      請(qǐng)注意:如果您不確切地了解這段代碼的作用,請(qǐng)不要擔(dān)心! 一旦我們開始使用Express,我們將更詳細(xì)地解釋我們的代碼!

    2. Start the server by calling node along with the script name in your command prompt:
      >node hellonode.js
      Server running at http://127.0.0.1:8000/
      
    3. Navigate to the URL (http://127.0.0.1:8000/). If everything is working, the browser should simply display the string "Hello World".

    使用NPM

    本身旁邊, NPM 是使用的最重要工具, 節(jié)點(diǎn)應(yīng)用程序。 NPM用于獲取應(yīng)用程序開發(fā),測(cè)試和/或生產(chǎn)所需的任何包(JavaScript庫(kù)),并且還可用于運(yùn)行開發(fā)過(guò)程中使用的測(cè)試和工具。

    注意:從Node的角度來(lái)看, Express 只是另一個(gè)包,您需要使用NPM安裝,然后在您自己的代碼中使用。

    您可以手動(dòng)使用NPM單獨(dú)提取每個(gè)所需的包。 通常,我們使用名為 package.json 的純文本定義文件來(lái)管理依賴關(guān)系。 此文件列出了特定JavaScript"包"的所有依賴關(guān)系,包括包的名稱,版本,描述,要執(zhí)行的初始文件,生產(chǎn)依賴關(guān)系,開發(fā)依賴關(guān)系,它可以使用的節(jié)點(diǎn)版本等 。 package.json 文件應(yīng)該包含NPM需要獲取和運(yùn)行應(yīng)用程序的所有內(nèi)容(如果您正在編寫一個(gè)可重復(fù)使用的庫(kù),可以使用此定義將您的包上傳到npm respository并使其可用 其他用戶)。

    添加依賴關(guān)系

    以下步驟說(shuō)明如何使用NPM下載軟件包,將其保存到項(xiàng)目依賴項(xiàng)中,然后在Node應(yīng)用程序中要求它。

    注意:在此處,我們將顯示抓取并安裝 Express 包的說(shuō)明。 稍后,我們將介紹如何使用快速應(yīng)用程序生成器指定此程序包及其他程序。 提供此部分是因?yàn)槔斫釴PM如何工作以及應(yīng)用程序生成器正在創(chuàng)建什么非常有用。

    1. First create a directory for your new application and navigate into it:
      mkdir myapp
      cd myapp
    2. Use the npm "init" command to create a package.json file for your application.?This command prompts you for a number of things, including?the name and version of your application and the name of the initial entry point file (by default this is index.js). For now, just accept the defaults:
      npm init

      如果顯示 package.json 文件( cat package.json ),您將看到接受的默認(rèn)值,以許可證結(jié)尾。

      {
        "name": "myapp",
        "version": "1.0.0",
        "description": "",
        "main": "index.js",
        "scripts": {
          "test": "echo \"Error: no test specified\" && exit 1"
        },
        "author": "",
        "license": "ISC"
      }
      
    3. Now install the Express library in the myapp directory and save it in the dependencies list (you can omit the --save option if for some reason you don't want your package.json?to include Express).
      npm install express --save

      package.json 的依賴性部分現(xiàn)在將顯示在 package.json 文件的末尾。

      {
        "name": "myapp",
        "version": "1.0.0",
        "description": "",
        "main": "index.js",
        "scripts": {
          "test": "echo \"Error: no test specified\" && exit 1"
        },
        "author": "",
        "license": "ISC",
        "dependencies": {
          "express": "^4.14.0"
        }
      }
      
    4. To use the library you call the require() function as shown below.
      var express = require('express')
      var app = express()
      
      app.get('/', function (req, res) {
        res.send('Hello World!')
      })
      
      app.listen(8000, function () {
        console.log('Example app listening on port 8000!')
      })
      

      此代碼顯示最小的"HelloWorld"Express Web應(yīng)用程序。 這將導(dǎo)入"express"模塊,并使用它創(chuàng)建一個(gè)服務(wù)器( app ),用于偵聽(tīng)端口8000上的HTTP請(qǐng)求,并向控制臺(tái)打印一條消息,說(shuō)明可用于測(cè)試服務(wù)器的瀏覽器URL 。 app.get()函數(shù)僅響應(yīng)具有指定的URL路徑(\'/\')的HTTP GET 請(qǐng)求,在這種情況下,通過(guò)調(diào)用函數(shù)發(fā)送 > Hello World!消息。

      在"myapp"應(yīng)用程序目錄的根目錄中創(chuàng)建一個(gè)名為 index.js 的文件,并為其提供上面顯示的內(nèi)容。

    5. You can start the server by calling node with the script in your command prompt:
      >node index.js
      Server running at http://127.0.0.1:8000/
      
    6. Navigate to the URL (http://127.0.0.1:8000/). If everything is working, the browser should simply display the string "Hello World!".

    開發(fā)依賴

    如果一個(gè)依賴關(guān)系只在開發(fā)過(guò)程中使用,你應(yīng)該將它保存為一個(gè)"開發(fā)依賴"(這樣你的軟件包用戶不必在生產(chǎn)環(huán)境中安裝它)。 例如,要使用受歡迎的JavaScript Linting工具 eslint ,您將調(diào)用NPM,如下所示:

    npm install --save-dev eslint

    然后,以下條目將添加到應(yīng)用程序的 package.json ::

      "devDependencies": {
        "eslint": "^3.10.0"
      }
    

    請(qǐng)注意:" Linters "是執(zhí)行靜態(tài)分析的工具 在軟件上,以便識(shí)別和報(bào)告遵守/不遵守一些編碼最佳實(shí)踐。

    運(yùn)行任務(wù)

    除了定義和獲取依賴項(xiàng)之外,您還可以在 package.json 文件中定義命名的腳本,并調(diào)用NPM以使用 docs.npmjs.com/cli/run-script"class ="external"> run-script 命令。 這種方法通常用于自動(dòng)運(yùn)行測(cè)試和開發(fā)或構(gòu)建工具鏈的部分(例如,運(yùn)行工具以縮小JavaScript,縮小圖像,LINT /分析您的代碼等)。

    注意:任務(wù)跑步者,如 Gulp /"class ="external"> Grunt 也可以用來(lái)運(yùn)行測(cè)試和其他外部工具。

    例如,要定義腳本以運(yùn)行我們?cè)谏弦还?jié)中指定的 eslint 開發(fā)依賴項(xiàng),我們可以將以下腳本塊添加到我們的 package.json 文件中(假設(shè) 我們的應(yīng)用程序源在一個(gè)文件夾/ src / js):

    "scripts": {
      ...
      "lint": "eslint src/js"
    ? ...
    }
    

    為了進(jìn)一步解釋, eslint src / js 是一個(gè)命令,我們可以在終端/命令行中輸入 eslint 對(duì)包含在 src / js 目錄。 將上面的內(nèi)容包含在我們應(yīng)用程序的package.json文件中,為此命令提供了一個(gè)快捷方式 - lint 。

    然后,我們可以使用NPM運(yùn)行 eslint :

    npm run-script lint
    # OR (using the alias)
    npm run lint
    

    此示例可能看起來(lái)不比原始命令短,但您可以在您的npm腳本中包括更大的命令,包括多個(gè)命令鏈。 您可以標(biāo)識(shí)一個(gè)運(yùn)行所有測(cè)試的單個(gè)npm腳本。

    安裝Express應(yīng)用程序生成器

    Express應(yīng)用程序生成器工具生成Express應(yīng)用程序"框架"。 您可以如圖所示使用NPM安裝生成器( -g 標(biāo)志全局安裝該工具,以便您可以從任何地方調(diào)用它):

    npm install express-generator -g

    要使用默認(rèn)設(shè)置創(chuàng)建名為"helloworld"的 Express 應(yīng)用程序,請(qǐng)導(dǎo)航至您要?jiǎng)?chuàng)建的應(yīng)用程序并運(yùn)行應(yīng)用程序,如圖所示:

    express helloworld

    注意:您還可以指定要使用的模板庫(kù)以及一些其他設(shè)置。 使用 help 命令查看所有選項(xiàng):

    express --help
    

    NPM將在您當(dāng)前位置的子文件夾中創(chuàng)建新的Express應(yīng)用程序,在控制臺(tái)上顯示構(gòu)建進(jìn)度。 完成后,該工具將顯示您需要輸入的命令以安裝Node依賴項(xiàng)并啟動(dòng)應(yīng)用程序。

    新應(yīng)用程式的根目錄中會(huì)有一個(gè) package.json 檔案。 您可以打開此查看安裝了哪些依賴項(xiàng),包括Express和模板庫(kù)Jade:

    {
      "name": "helloworld",
      "version": "0.0.0",
      "private": true,
      "scripts": {
        "start": "node ./bin/www"
      },
      "dependencies": {
        "body-parser": "~1.15.2",
        "cookie-parser": "~1.4.3",
        "debug": "~2.2.0",
        "express": "~4.14.0",
        "jade": "~1.11.0",
        "morgan": "~1.7.0",
        "serve-favicon": "~2.3.0"
      }
    }

    使用NPM安裝hello world應(yīng)用程序的所有依賴關(guān)系,如圖所示:

    cd helloworld
    npm install
    

    然后運(yùn)行應(yīng)用程序(這些命令對(duì)于Windows和Linux / Mac稍有不同),如下所示:

    # Run the helloworld on Windows
    SET DEBUG=helloworld:* & npm start
    
    # Run helloworld on Linux/Mac OS X
    DEBUG=helloworld:* npm start
    

    DEBUG命令創(chuàng)建有用的日志記錄,產(chǎn)生如下所示的輸出。

    >SET DEBUG=helloworld:* & npm start
    
    > helloworld@0.0.0 start D:\Github\expresstests\helloworld
    > node ./bin/www
    
    ? helloworld:server Listening on port 3000 +0ms

    打開瀏覽器并導(dǎo)航到 http://127.0.0.1:3000/ 查看默認(rèn)的快速歡迎頁(yè)面。

    ; width:675px;">

    當(dāng)我們來(lái)到關(guān)于生成一個(gè)框架應(yīng)用程序的文章時(shí),我們將更多地討論生成的應(yīng)用程序。

      概要

      您現(xiàn)在已在您的計(jì)算機(jī)上啟動(dòng)并運(yùn)行了一個(gè)可用于創(chuàng)建Express Web應(yīng)用程序的Node開發(fā)環(huán)境。 您還了解了如何使用NPM將Express導(dǎo)入到應(yīng)用程序中,以及如何使用Express Application Generator工具創(chuàng)建應(yīng)用程序,然后運(yùn)行它們。

      在下一篇文章中,我們開始通過(guò)教程構(gòu)建一個(gè)使用此環(huán)境和關(guān)聯(lián)工具的完整的Web應(yīng)用程序。

      也可以看看

      以上內(nèi)容是否對(duì)您有幫助:
      在線筆記
      App下載
      App下載

      掃描二維碼

      下載編程獅App

      公眾號(hào)
      微信公眾號(hào)

      編程獅公眾號(hào)