找回密码
 立即注册
首页 python Python-Web 查看内容
现在你知道什么是 Express,我们将向您展示如何在 Windows、Linux(Ubuntu)和Mac OS X 设置 Node/Express 的开发和测试环境。无论你使用那款常见的操作系统,这篇文章都会教你开发 Express 程序所需的知识。


预备:
知道如何打开终端/命令行。知道如何在你的开发计算机的操作系统上安装软件包。
目标:
在您的计算机上为 Express(x.xx) 建立一个开发环境。


Express 开发环境概述


Node 和 Express 可以让你很容易地在你的计算机上开始开发web应用程序。本节提供了所需工具的概述,解释了在Ubuntu、Mac OS X和Windows上安装Node(和Express)的一些最简单的方法,并展示了如何测试安装是否成功。


什么是 Express 开发环境?


Express开发环境包括安装在你本地计算机上的 Nodejs,NPM 包管理器和 Express 框架生成器(可选)。


节点  和NPM软件包管理器从预先准备的二进制软件包,安装程序,操作系统软件包管理器或源代码安装在一起(如以下部分所示)。 然后由NPM安装Express作为您的各个Express  Web应用程序的依赖项(以及其他库,如模板引擎,数据库驱动程序,身份验证中间件,中间件以提供静态文件等)


NPM也可以在全局安装Express 应用生成器,这是一个用来创建遵循MVC模式的Express应用结构的工具。这个应用生成器是可选的,因为你不需要这个工具就可以创建一个Express应用,或者是构建一个拥有相同架构布局的Express应用。我们将会使用应用生成器,因为它会让初学者更容易上手,同时也会促进一个模块化的应用结构。


注意: 不像其他的互联网应用框架,这里的开发环境不包括一个单独的服务器.使用Node/Express的web应用创建并运行自己的web服务器!


在一个典型的开发环境中还需要一些其它的工具,包括文本编辑器,或者是集成开发环境来编写代码,还有诸如git这样的版本控制工具来安全地管理你不同版本的代码。我们假定你已经安装了这些工具(尤其是一个文本编辑器)。


支持什么操作系统?


Node可以运行在windows,macOS,Linux的许多分支,Docker等。几乎所有的个人电脑都可以有足够的性能在开发中运行node。Express运行在node环境中,所以所有可以运行node的平台都可以运行Express应用。


在这篇文章中,我们将会介绍如何在windows,macOS,Ubuntu Linux上进行安装。


你应该选择Node/Express的哪个版本


releases of Node 这里有许多个Node的发行版本,— 新的版本包含着bug的修复,对ECMAScript新标准的更多支持,以及针对Node APIs的改进。


通常你应该选择最新的LTS版本,因为它比“Current”版本更加稳定,"Current"版本包含最新的特性(这些特性仍旧在被维护中)。如果你需要的特性在LTS版本中没有提供,那么你可以去选择使用“Current”版本。


对于Express而言,你应该总是使用最新版本。


数据库和其它依赖又该如何选择呢?


其它依赖,例如数据库驱动,模板引擎,身份认证引擎,等。它们是应用的一部分,使用NPM 包管理工具将它们引入到应用的环境中。我们将会在稍后的文章中对它们进行讨论。


安装 Node


为了使用Express你应该首先在你的操作系统上安装Nodejs和NPM。接下来的单元将会为你介绍在 Ubuntu Linux 16.04, Mac OS X, and Windows 10上安装LTS版本的Nodejs最简单的方法。.


Tip: 这部分内容将会为你介绍使用最简单的方法在我们的目标平台上安装Node和NPM,如果你使用其它的操作系统,或者你想了解更多的安装方法,你可以看一看链接的这篇文章 Installing Node.js via package manager (nodejs.org).


Windows and Mac OS X


在windows和macOS上安装Node和NPM是非常容易的,因为你可以使用提供的安装包:


  • 下载安装包:

    • 访问 https://nodejs.org/en/
    • 选择Download按钮下载LTS版本的Nodejs,推荐大多数用户去下载这个版本。

  • 双击运行安装包,跟随安装提示进行安装。




Ubuntu 16.04


安装最新的LTS版本的Node 6.x的最简单方法是使用包管理器从Ubuntu 二进制发行版存储库中获取它。这可以通过在终端上运行以下两个命令来非常简单地完成:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
警告:不要直接从普通的Ubuntu存储库安装,因为它们包含非常旧版本的节点。


测试一下你的Nodejs和NPM是否安装成功


检查你是否成功安装node的最简单的方式就是在你的终端中使用“version”命令,检查一下是否成功返回了版本号:
>node -v
v8.9.1

Nodejs NPM包管理工具应该也被成功安装了,你可以使用同样的方式来测试一下:
>npm -v
5.6.0

下面激动人心的时刻到了,让我们使用原生代码来创建一个最基础的服务器,当你在浏览器中访问正确的url地址时,它将会在浏览器上简单的打印"Hello world":

将下面的代码复制到一个名为hellonode.js的文件中。在这使用了纯Node的特性(与Express无关)和一些ES6的语法:
//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()函数创建了一个服务器,该服务器会监听来自3000端口的HTTP请求。之后会在终端中打印一条信息,它将会告诉你可以访问哪一个url来测试该服务器。createServer()函数接受一个回调函数作为参数,这个回调函数将会在收到HTTP请求后进行调用。——它简单地返回了200“OK”状态码,和“Hello World”文本。

Note:  如果你现在没办法搞清楚这些代码到底都做了哪些事情的话请不要担心,当我们开始使用Express的时候我们将会对它进行更加详细的解释。


在命令行工具中进入hellonode.js文件的目录,使用node +文件名的方式运行该脚本文件:
>node hellonode.js
Server running at http://127.0.0.1:8000/
在浏览器中输入这个URL (http://127.0.0.1:8000/)。如果一切正常运转,浏览器应该显示出“Hello,world”字符串。(译者注:输入localhost:8000也可以。)


Using NPM


Node本身旁边,NPM  是使用Node 应用程序的最重要的工具。NPM用于获取应用程序开发,测试和/或生产所需的任何包(JavaScript库),也可用于运行开发过程中使用的测试和工具。


注意: 从Node的角度来看,Express只是一个你要用NPM安装、在自己的代码中使用的包而已。


你可以手动用NPM一个个安装需要的包。但我们通常用一个纯文本文件--package.json--来管理依赖关系(译者注:也就是需要什么包)。这个文件列出了特定JavaScript“包”的所有依赖项,包括包的名称、版本、描述、要执行的初始文件、生产依赖项、开发依赖项、它可以使用的节点版本等等。json文件应该包含NPM获取和运行应用程序所需的所有内容(如果您正在编写一个可重用的库,您可以使用这个定义将包上传到NPM respository,以便其他用户使用)。


添加依赖


接下来的文章向你展示了如何通过NPM下载一个包,将其保存进项目的依赖中,以及如何在Node应用中使用它。


注意: 这里我们指定了用来获取和安装Express包的指令。过一会我们会展示为什么当我们使用Express应用生成器时,这个包(以及其他的包)已经为我们准备好了。提供这个部分是因为理解NPM如何工作以及应用程序生成器正在创建什么是有用的。


首先为新应用程序创建一个目录并导航到它:
mkdir myapp
cd myapp

使用npm“ init”命令为您的应用程序创建package.json文件。此命令会提示您输入许多内容,包括应用程序的名称和版本以及初始入口点文件的名称(默认情况下为index.js)。现在,只需接受默认值:
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"
}

现在在myapp目录中安装Express库。该包将自动保存到package.json  文件中的依赖项列表中。
npm install express

package.json的dependencies部分  现在将出现在package.json文件的末尾,并包含  Express。
{
  "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.16.2"
  }
}

要使用该库,请调用该require()函数,如下所示。
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”包并用它创造了一个监听8000号端口的服务器(app),并且在控制台打印了一条信息,解释你能用什么样的URL来测试这个服务器。GET()函数只响应具有指定URL路径('/')的HTTP GET请求,在这种情况下,调用一个函数发送我们的Hello World!消息。


创建一个名为index的文件。在“myapp”应用程序目录的根目录中的js,并给它上面显示的内容。


您可以通过在命令提示符中使用脚本调用节点来启动服务器:
>node index.js
Example app listening on port 8000
导航到URL(http://127.0.0.1:8000/)。如果一切正常,浏览器应该只显示字符串“Hello World!”。


发展依赖


例如,要使用流行的JavaScript Linting工具eslint,您可以调用NPM,如下所示:如果一个依赖只在开发过程中使用到,你就应该改把它保存为“开发依赖”(development dependencies) (这样使用你的包的人就不必再他们的应用中安装这些依赖).
npm install eslint --save-dev

然后将以下条目添加到您的应用程序的  package.json中:
"devDependencies": {
    "eslint": "^4.12.1"
  }
注意:  “ Linters ”是对软件执行静态分析的工具,用于识别和报告对某些编码最佳实践的依从性/非依从性。


运行任务


除了在NPM中定义和获取依赖,你还可以在package.json中定义命名脚本,并且调用NPM的run-script命令来运行它们。


这种方法通常用于自动运行测试和部分开发或构建工具链(例如,运行工具来缩小JavaScript,缩小图像,LINT /分析代码等)。


注意:GulpGrunt等任务运行程序也可用于运行测试和其他外部工具。


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

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

然后,我们可以通过调用以下方式使用NPM 运行eslint:
npm run-script lint
# OR (using the alias)
npm run lint
此示例可能看起来不比原始命令短,但您可以在npm脚本中包含更大的命令,包括多个命令的链。您可以识别一次运行所有测试的单个npm脚本。


安装Express Application Generator


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.18.2",
    "cookie-parser": "~1.4.3",
    "debug": "~2.6.9",
    "express": "~4.15.5",
    "jade": "~1.11.0",
    "morgan": "~1.9.0",
    "serve-favicon": "~2.4.5"
  }
}

使用NPM安装helloworld应用程序的所有依赖项,如下所示:
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

> [email]helloworld@0.0.0[/email] start D:\Github\expresstests\helloworld
> node ./bin/www

  helloworld:server Listening on port 3000 +0ms
打开浏览器并导航到  http://127.0.0.1:3000/以查看默认的Express欢迎页面。





当我们进入有关生成骨架应用程序的文章时,我们将更多地讨论生成的应用程序。




分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册