Express是目前最流行的基于Node.js的Web开发框架,可以快速地搭建一个完整功能的网站。

Express 是一个自身功能极简,完全是由路由中间件构成一个的 web 开发框架:从本质上来说,一个 Express 应用就是在调用各种中间件。

路由的功能是根据请求路径和请求方法来处理特定的请求,而中间件则作用于全部请求。

1. 中间件(Middleware)是一个函数,中间件是一种功能的封装方式,具体来说就是封装在程序中处理HTTP 请求的功能。
2. 路由: 是指如何定义应用的端点(URIs)以及如何响应客户端的请求。

如何理解中间件

中间件是在管道中执行的。你可以想象一个送水的真实管道。水从一端泵入,然后在到达目的地之前还会经过各种仪表和阀门。这个比喻中很重要的一部分是顺序问题,你把压力表放在阀门之前和之后的效果是不同的。同样,如果你有个向水中注入什么东西的阀门,这个阀门“下游”的所有东西都会含有这个新添加的原料。在Express程序中,通过调用app.use 向管道中插入中间件。
安装express
$ npm init
#创建 package.json文件
#中间省略选项步骤
$ npm install express --sava
#安装 Express 并将其保存到依赖列表中:
#$ npm install express -> 只是临时安装 Express,不想将它添加到依赖列表中,

接着就可以直接引用express模块, 但是我们可以使用生成器工具来快速创建一个应用的骨架。

1.安装 Express
在工程的目录下 使用本地模式安装这个包,如果要通过命令行调用这个包中的命令,则需要用全局模式安装,按理说本地模式就够了, 但是我们在这里采用全局模式;<Express等都提供了 Quick Start(快 开始)工具,这个工具的功能通常 是建一个网站最小的基础框架,在此基础上完成开发。>

#安装 Express$ sudo npm install -g express-generator

 快速构建项目

#建网站基本结构:
$ express project       。。。。 create : project/bin create : project/bin/www
#下载依赖
$ cd project && npm install#运行   run the app:     $ DEBUG=project:* npm start -------------          
#检查前目录下的 package.json,并自动安装所有指定的模块  

$ cd project && npm install
#用 Express 实现的网站实际上就是一个 Node.js 程序, 启动服务器$ DEBUG=project:* npm start  .  .  project:server Listening on port 3000 +0ms  

打开浏览器http://localhost:3000, 会看到如下图:

Express 系列之---概述(一)_java

关闭服务器 CMD + C 

目录结构

.
├── app.js          #  启动文件
├── bin             #  存放可执行文件
│   └── www├── node_modules    #  存储工程信息及模块依赖
├── package.json    #  存放package.json中安装的模块,添加依赖的模块并安装后,存放在这个文件夹下
├── public          #  存放image、css、js等文件
│   ├── images│   ├── javascripts│   └── stylesheets│       └── style.css├── routes          #  存放路由文件
│   ├── index.js│   └── users.js└── views           #  存放视图文件
    ├── error.jade
    ├── index.jade
    └── layout.jade

发送网络请求, 在浏览器中看到欢迎界面时, 中间发生了什么?

第一步:访问 http://localhost:3000,会发送以下请求:

GET / HTTP/1.1
Host: localhost:3000
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.142
Safari/535.19
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: UTF-8,*;q=0.5

浏览器发送请求,由路由控制器接受,根据不同的路由定向到不同的控制器。控制器处理用户的具体请求,可能会访问数据库中的对象,即模板部分。控制器还要访问模板引擎,生成视图的 HTML,最后再由控制器返回给浏览器,完成一次请求。

问题 Error: Cannot find module 'express' 解决办法

$ npm install express -g# 只是说可以require, 但要想在terminal下用express生成project,还需要
$ npm install -g express-generator#在使用的时候需要单独安装