Express 概述(一)
2016-11-08 本文已影响225人
simuty
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
#下载依赖
install dependencies:
$ 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, 会看到如下图:
关闭服务器 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
#在使用的时候需要单独安装: npm install express
参考链接
body-parser
jade
中间件
Express学习笔记-快速开始
更多精彩内容请关注“IT实战联盟”哦~~~
IT实战联盟.jpg