codecamp

Setting up a Node development environment

先决条件: 知道如何打开终端/命令行。 知道如何在开发计算机的操作系统上安装软件包。
目的: 在您的计算机上为Express(X.XX)设置开发环境。

Express开发环境概述

可以非常容易地设置您的计算机,以便开始开发Web应用程序。 本节提供了所需工具的概述,解释了在Ubuntu,Mac OS X和Windows上安装Node(和Express)的一些最简单的方法,并说明如何测试安装。

什么是Express开发环境?

开发环境包括安装 Nodejs NPM包管理器 >在本地计算机上。

包管理器是从预先准备的二进制包,安装程序,操作系统包管理器或从源(如下面部分所示)安装的。 网络应用程序(以及其他库,如模板引擎,数据库驱动程序,身份验证中间件,中间件以提供静态文件)的依赖关系, 等等。)

href ="/ en-US / Apps / Fundamentals / Modern_web_app_architecture / MVC_architecture"> MVC模式。 应用程序生成器是可选的,因为您不需要使用此工具来创建使用Express的应用程序,或构造具有相同体系结构布局或依赖关系的Express应用程序。 我们将使用它,因为它使入门容易得多,并促进模块化应用程序结构。

注意:与其他一些网络框架不同,开发环境不包含单独的开发网络服务器。 / 网络应用程序创建并运行自己的web服务器!

还有其他外围工具是典型开发环境的一部分,包括文本编辑器或用于编辑代码的IDE,以及源代码控制管理工具,例如 ://git-scm.com/"class ="external"> Git 安全管理您的代码的不同版本。 我们假设您已经安装了这些工具(特别是文本编辑器)。

支持哪些操作系统?

可以在Windows,Mac OS X,Linux,Docker等许多"风格"上运行(nodejs上有一个完整的列表 / en / download /"class ="external">下载页)。 几乎任何个人计算机应该具有在开发期间运行Node所必需的性能。

在本文中,我们提供了针对Windows,Mac OS X和Ubuntu Linux的安装说明。

你应该使用什么版本的Node / Express?

有很多版本的Node - 较新的版本包含错误修复,支持更多最新版本的ECMAScript (JavaScript)标准,以及对Node API的改进。

一般来说,您应该使用最新的 LTS(长期支持)版本,因为这将比"当前"版本更稳定,但仍具有相对较新的功能(仍在积极维护)。 如果您需要LTS版本中不存在的功能,则应使用当前版本。

对于 ,您应始终使用最新版本。

数据库和其他依赖关系?

其他依赖项,例如数据库驱动程序,模板引擎,认证引擎等是应用程序的一部分,并且使用NPM包管理器导入到应用程序环境中。 我们将在后面的特定于应用程序的文章中讨论它们。

安装节点

要使用Express ,您必须先安装 Nodejs 节点程序包管理器(NPM)。 以下部分介绍了在Ubuntu Linux 16.04,Mac OS X和Windows 10上安装Nodejs的长期支持(LTS)版本的最简单方法。

提示:以下部分显示了在我们的目标操作系统平台上安装 Node NPM 的最简单方法。 如果您使用其他操作系统,或者只想查看当前平台的一些其他方法,请参阅 >通过软件包管理器安装Node.js (nodejs.org)。

Windows和Mac OS X

在Windows和Mac OS X上安装 Node NPM 非常简单,因为您只需使用提供的安装程序:

  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最简单的方法是使用包管理器从Ubuntu 二进制分发库获取它。 这可以很简单地通过在终端上运行以下两个命令来完成:

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

警告:不要直接从正常的Ubuntu存储库安装,因为它们包含非常旧版本的节点。

    测试Nodejs和NPM安装

    安装测试该节点的最简单方法是在终端/命令提示符中运行"version"命令,并检查是否返回了版本字符串:

    >node -v
    v6.9.1

    还应安装 Nodejs 包管理器 NPM ,并可以以相同的方式进行测试:

    >npm -v
    3.10.8

    作为一个稍微更激动人心的测试,让我们创建一个非常基本的"纯节点"服务器,当您在浏览器中访问正确的URL时,在浏览器中打印出"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/')
      

      代码导入"http"模块,并使用它来创建一个服务器( createServer()),用于侦听端口8000上的HTTP请求。脚本然后向控制台打印一个消息, 可以使用测试服务器。 createServer()函数将一个回调函数作为参数,该函数在接收到HTTP请求时被调用 - 这只返回HTTP状态码为200("OK")的响应,而plain 文本"Hello World"。

      请注意:如果您不确切地了解这段代码的作用,请不要担心! 一旦我们开始使用Express,我们将更详细地解释我们的代码!

    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 是使用的最重要工具, 节点应用程序。 NPM用于获取应用程序开发,测试和/或生产所需的任何包(JavaScript库),并且还可用于运行开发过程中使用的测试和工具。

    注意:从Node的角度来看, Express 只是另一个包,您需要使用NPM安装,然后在您自己的代码中使用。

    您可以手动使用NPM单独提取每个所需的包。 通常,我们使用名为 package.json 的纯文本定义文件来管理依赖关系。 此文件列出了特定JavaScript"包"的所有依赖关系,包括包的名称,版本,描述,要执行的初始文件,生产依赖关系,开发依赖关系,它可以使用的节点版本等 。 package.json 文件应该包含NPM需要获取和运行应用程序的所有内容(如果您正在编写一个可重复使用的库,可以使用此定义将您的包上传到npm respository并使其可用 其他用户)。

    添加依赖关系

    以下步骤说明如何使用NPM下载软件包,将其保存到项目依赖项中,然后在Node应用程序中要求它。

    注意:在此处,我们将显示抓取并安装 Express 包的说明。 稍后,我们将介绍如何使用快速应用程序生成器指定此程序包及其他程序。 提供此部分是因为理解NPM如何工作以及应用程序生成器正在创建什么非常有用。

    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 ),您将看到接受的默认值,以许可证结尾。

      {
        "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 的依赖性部分现在将显示在 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应用程序。 这将导入"express"模块,并使用它创建一个服务器( app ),用于侦听端口8000上的HTTP请求,并向控制台打印一条消息,说明可用于测试服务器的浏览器URL 。 app.get()函数仅响应具有指定的URL路径(\'/\')的HTTP GET 请求,在这种情况下,通过调用函数发送 > Hello World!消息。

      在"myapp"应用程序目录的根目录中创建一个名为 index.js 的文件,并为其提供上面显示的内容。

    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!".

    开发依赖

    如果一个依赖关系只在开发过程中使用,你应该将它保存为一个"开发依赖"(这样你的软件包用户不必在生产环境中安装它)。 例如,要使用受欢迎的JavaScript Linting工具 eslint ,您将调用NPM,如下所示:

    npm install --save-dev eslint

    然后,以下条目将添加到应用程序的 package.json ::

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

    请注意:" Linters "是执行静态分析的工具 在软件上,以便识别和报告遵守/不遵守一些编码最佳实践。

    运行任务

    除了定义和获取依赖项之外,您还可以在 package.json 文件中定义命名的脚本,并调用NPM以使用 docs.npmjs.com/cli/run-script"class ="external"> run-script 命令。 这种方法通常用于自动运行测试和开发或构建工具链的部分(例如,运行工具以缩小JavaScript,缩小图像,LINT /分析您的代码等)。

    注意:任务跑步者,如 Gulp /"class ="external"> Grunt 也可以用来运行测试和其他外部工具。

    例如,要定义脚本以运行我们在上一节中指定的 eslint 开发依赖项,我们可以将以下脚本块添加到我们的 package.json 文件中(假设 我们的应用程序源在一个文件夹/ src / js):

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

    为了进一步解释, eslint src / js 是一个命令,我们可以在终端/命令行中输入 eslint 对包含在 src / js 目录。 将上面的内容包含在我们应用程序的package.json文件中,为此命令提供了一个快捷方式 - lint

    然后,我们可以使用NPM运行 eslint :

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

    此示例可能看起来不比原始命令短,但您可以在您的npm脚本中包括更大的命令,包括多个命令链。 您可以标识一个运行所有测试的单个npm脚本。

    安装Express应用程序生成器

    Express应用程序生成器工具生成Express应用程序"框架"。 您可以如图所示使用NPM安装生成器( -g 标志全局安装该工具,以便您可以从任何地方调用它):

    npm install express-generator -g

    要使用默认设置创建名为"helloworld"的 Express 应用程序,请导航至您要创建的应用程序并运行应用程序,如图所示:

    express helloworld

    注意:您还可以指定要使用的模板库以及一些其他设置。 使用 help 命令查看所有选项:

    express --help
    

    NPM将在您当前位置的子文件夹中创建新的Express应用程序,在控制台上显示构建进度。 完成后,该工具将显示您需要输入的命令以安装Node依赖项并启动应用程序。

    新应用程式的根目录中会有一个 package.json 档案。 您可以打开此查看安装了哪些依赖项,包括Express和模板库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应用程序的所有依赖关系,如图所示:

    cd helloworld
    npm install
    

    然后运行应用程序(这些命令对于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命令创建有用的日志记录,产生如下所示的输出。

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

    打开浏览器并导航到 http://127.0.0.1:3000/ 查看默认的快速欢迎页面。

    ; width:675px;">

    当我们来到关于生成一个框架应用程序的文章时,我们将更多地讨论生成的应用程序。

      概要

      您现在已在您的计算机上启动并运行了一个可用于创建Express Web应用程序的Node开发环境。 您还了解了如何使用NPM将Express导入到应用程序中,以及如何使用Express Application Generator工具创建应用程序,然后运行它们。

      在下一篇文章中,我们开始通过教程构建一个使用此环境和关联工具的完整的Web应用程序。

      也可以看看

      Express Tutorial Part 6: Working with forms
      Express Tutorial: The Local Library website
      温馨提示
      下载编程狮App,免费阅读超1000+编程语言教程
      取消
      确定
      目录
      CSS

      关闭

      MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }