node学习篇之框架express(二)

前面也有提到,和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中路由的简单介绍,

猜你喜欢

转载自blog.csdn.net/keep789/article/details/81513534
今日推荐