前面也有提到,和node搭配的框架主要有express、koa、Hapi。express框架比较完善、稳定、文档全、社区大,koa框架比较超前,Hapi这个框架的话比较复杂---适合做复杂的大型项目。所以这里介绍的是express框架和node的一个搭配。
首先,对express框架做一个简单的介绍:
express框架是一个基于node平台开发的轻量级的框架,可以用来快速开发web和移动应用。express不对node.js的特性进行二次抽象,而是在其基本功能上进行一个扩展。另外,express完全是由路由和中间件构成的框架,从本质上来讲,对express的应用就是为了对中间件进行调用。
提到中间件和路由,下面就对他两做一个了解:
中间件------------中间件(middleware) 是一个函数。它可以访问request对象,响应对象(res) 以及处于请求--响应流程中的中间件,一般被命名为 next 的变量。
中间件的功能:
- 可以执行任何代码
- 可以修改请求和响应对象
- 可以结束请求---响应循环
- 可以调用堆栈中的下一个中间件
如果中间件没有执行结束请求-响应流程 他需要通过next() 将控制权传递给下一个中间件函数
Tips:我们把结束请求-响应流程的方法 称为是句柄函数
路由---------------express路由分为应用级路由和路由级路由两种,express路由,通过创建express项目来看看这两种路由。
建一个a的文件夹,调出命令窗口,安装express的环境,步骤如下:
- 全局环境(一次) npm i express -g
- 安装express脚手架 npm i express-generator –g
-
脚手架创建项目 express -e project_name(项目名字,不可以为环境变量关键词)
-
安装package.json的依赖,按照指令cd进入相关文件夹,npm i 安装依赖
-
npm start 启动项目,可去localhost:3000访问。(npm start执行的是node ./bin/www,所以为了实时监听可以用supervisor ./bin/www来启动,也可以修改package.json里面的scripts中的start指令,将node改为supervisor )
建index.js-------应用级路由
var express = require("express")
//应用级别路由
var app = express();
//相当于http.createServer()
app.get("/",(req,res)=>{
res.send("hello---index")
})
app.get("/home",(req,res)=>{
res.send("hello---home")
})
app.get("/about",(req,res)=>{
res.send("hello---about")
})
app.listen(3000)
npm i express -D 写路由的代码之前安装依赖,通过node index进行执行,这里的路径是绝对路径,比如:localhost:3000进入的是/;localhost:3000/home进入的是/home;localhost:3000/about进入的是/about
建index1.js-----路由级路由
var express = require("express");
var app =express()
//路由级路由
var router = express.Router();
router.get("/",(req,res)=>{
res.send("hello")
})
router.get("/about",(req,res)=>{
res.send("hello关于")
})
router.get("/other",(req,res)=>{
res.send("hello其他")
})
app.use("/home",router)
app.listen(3000)
通过node index1执行,进入的是相对路径,是相对于http://localhost:3000/home的路径。比如:http://localhost:3000/home/about才是/about展示的页面。
以上就是对express中路由的简单介绍,