Zhe Yang

Express 教程 01 – 入门教程之经典的Hello World

前言:

本篇文章是建立在Node.js基础之上的,所以读者需要有一点Node.js基础的了解。

演示我是按照Windows操作系统来的了。Linux的其实命令都差不多,大家应该也可以发现。

我也是刚学这个,所以很多东西都是我从各大网站上照的,然后附上了我的实践操作及自己的说明吧。

有什么错误,希望大家及时指明,也请大家见谅。。

一、Express?纳尼?

Express   是一个简洁而灵活的 Node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健、友好的API变得快速又简单。

二、开始前的准备工作

步骤1:首先,我们需要在自己的磁盘分区中,新建一个文件夹,后面我们的所有操作都将在这个文件夹中进行。

在这里,我以我的D盘做演示。

运行cmd、启动DOS,输入“D:”回车切换到D盘,然后运行“mkdir NodejsDemo”新建一个名为“NodejsDemo”的文件夹:

步骤2:在这个文件夹中,我们必须得创建一个“应用程序包文件”,它类似于.NET中的 package.json ,用于NuGet管理文件版本用的。

在我们的Express里面呢,我们也需要创建 package.json 这个文件,它和其他的Node程序包是一样的,在里面Express作为一个依赖。

你也可以使用 npm info express version 来获取express最新版本号,最好使用最新的版本号,这样新出的功能就不会让你感觉到奇怪了:

OK,得知目前最新的Express版本号为4.12.2,接下来我们就可以创建package.json这个包文件了。

package.json文件代码如下:

{
  "name": "NodejsDemo",
  "description": "Hello World test app.",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "express": "3.x"
  }
}

步骤3:现在我们的package.json文件已经准备就绪了,下面我们就可以使用npm(1)来安装依赖项,这里的依赖项仅是Express。

运行 cd NodejsDemo 进入我们的项目目录,这里也就是我们最开始新建的,也是package.json所在的NodejsDemo文件夹:

步骤4:然后,我们运行  npm install 命令,安装package.json中声明的依赖项:

步骤5:当npm完成后,Express 4.12.2和它的依赖项就安装到你的”./node_modules”目录里了。

你可以通过运行 npm ls 命令来确认一下,它会把Express和它的依赖展示成下面的树形结构:

二、测试安装之经典的Hello World

第一段中,我们的Express已经安装完成了,下面,我们要来写真正的代码了,也算是测试安装结果吧。

步骤1:在D:\NodejsDemo,也就是上面我们创建的那个目录中,创建一个js文件:man.js,作为我们的主程序。

main.js代码如下:

var express = require('express')
var app = express()
 
app.get('/', function (request, response) {
  response.send('Hello World')
})
 
var server = app.listen(3000, function() {
    console.log('Listening on port %d', server.address().port);
});

上述代码中,我们首先引入express模块,然后使用express()创建一个新的应用程序。

在这个应用程序实例里,你可以通过 app.VERB() 定义路由,上面的例子是”GET /”返回 “Hello World” 字符串。

request 和 response 对象是和node原生提供给你的一致的,你也可以执行  response.pipe() ,   request.on(‘data’, callback) 等任何事情在没有Express的情况下可以做的事情。

然后,我们使用express对象封装好的方法 response.send() ,它会返回指定字符串,并且设置Content-Length。

最后,我们启动监听3000,并且输出当前的监听信息。

步骤2:运行cmd,启动DOS,进入该项目目录,运行命令“node main”:

步骤3:打开浏览器,访问:http://127.0.0.1:3000:

啊啊啊,每次看到这两个单词,都好激动有木有。。。。。。

三、使用express(1) 来生成一个应用程序

Express团队维护了一个可以快速生成项目模板的可执行文件,这里命名为express(1)。

如果您使用npm安装全局的express-generator,那么在你的机器任何位置它都可以被访问。

步骤1:运行cmd进入DOS,切换到D盘,运行命令  npm install -g express-generator ,-g表示global全局的。效果如下:

步骤2:这个工具提供了一个非常简单的生成一个程序骨架的功能。但是他也是有局限性的,比如它只支持很少的几个模板引擎。

而事实上Express几乎支持所有的为Node所建的模板引擎。使用 express –help 查看一下帮助:

步骤3:如果你想生成一个Jade,Stylus的应用程序,你只需要简单的执行下面的命令即可:  express –session –css stylus –ejs myapp

然后,它就会在我们的D盘中新建了一个myapp的站点,结构如下:

D:\MYAPP
│  app.js
│  package.json
│
├─bin
│      www
│
├─public
│  ├─images
│  ├─javascripts
│  └─stylesheets
│          style.styl
│
├─routes
│      index.js
│      users.js
│
└─views
        error.ejs
        index.ejs

步骤4:和其他Node程序一样,你必须添加项目依赖:

D:\> cd myapp
D:\myapp> npm install

D:\>cd myapp

D:\myapp>npm install
cookie-parser@1.3.4 node_modules\cookie-parser
├── cookie@0.1.2
└── cookie-signature@1.0.6

ejs@2.3.1 node_modules\ejs

debug@2.1.2 node_modules\debug
└── ms@0.7.0

morgan@1.5.1 node_modules\morgan
├── basic-auth@1.0.0
├── depd@1.0.0
└── on-finished@2.2.0 (ee-first@1.1.0)

serve-favicon@2.2.0 node_modules\serve-favicon
├── fresh@0.2.4
├── ms@0.7.0
├── parseurl@1.3.0
└── etag@1.5.1 (crc@3.2.1)

express@4.12.2 node_modules\express
├── merge-descriptors@1.0.0
├── cookie-signature@1.0.6
├── utils-merge@1.0.0
├── cookie@0.1.2
├── fresh@0.2.4
├── methods@1.1.1
├── range-parser@1.0.2
├── escape-html@1.0.1
├── content-type@1.0.1
├── vary@1.0.0
├── finalhandler@0.3.3
├── parseurl@1.3.0
├── serve-static@1.9.1
├── content-disposition@0.5.0
├── path-to-regexp@0.1.3
├── depd@1.0.0
├── qs@2.3.3
├── on-finished@2.2.0 (ee-first@1.1.0)
├── etag@1.5.1 (crc@3.2.1)
├── send@0.12.1 (destroy@1.0.3, ms@0.7.0, mime@1.3.4)
├── proxy-addr@1.0.6 (forwarded@0.1.0, ipaddr.js@0.1.8)
├── accepts@1.2.4 (negotiator@0.5.1, mime-types@2.0.9)
└── type-is@1.6.0 (media-typer@0.3.0, mime-types@2.0.9)

body-parser@1.12.0 node_modules\body-parser
├── content-type@1.0.1
├── raw-body@1.3.3
├── bytes@1.0.0
├── depd@1.0.0
├── qs@2.3.3
├── on-finished@2.2.0 (ee-first@1.1.0)
├── iconv-lite@0.4.7
└── type-is@1.6.0 (media-typer@0.3.0, mime-types@2.0.9)

stylus@0.42.3 node_modules\stylus
├── css-parse@1.7.0
├── mkdirp@0.3.5
├── sax@0.5.8
└── glob@3.2.11 (inherits@2.0.1, minimatch@0.3.0)

D:\myapp>

命令运行的回显结果

步骤5:然后,我们就可以运行了!!!哈哈。

运行命令 node app 启动主程序,如果启动无反应,您也可以切换到bin目录,运行 node www 启动程序:

步骤6:打开浏览器,访问:http://127.0.0.1:3000:

说明:

本文就是简单的入门篇,后面有时间我会针对这个站点系统的骨架,目录扫雷式讲解,并且演示进行二次自定义开发。

大家也可以自己看看这个目录结构,手动修改一下页面,熟悉一下。

码字很辛苦,转载请注明来自Zhe Yang@Shandong University《Express 教程 01 – 入门教程之经典的Hello World》

评论

  1. shui7777 #1

    希望你的博客如这个夏天一样火热。

    回复
    2015-07-29