Express框架及中间件的初步认识

Express是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。
其使用也颇为简单,下面用一小段伪代码实现一个简单的使用

const express = require('express')//引入依赖包
const app = express()//创建express实例
app.use('/',(req,res)=>{//实现路由
  res.send('home') //给浏览器返回数据,此时已经进行封装,不需要使用end方法
  res.json({})//给浏览器返回一个json数据
})
app.listen(3000)//监听端口

Express还有一个重要知识点是中间件以及中间件栈
中间件的类型分为5类:

  1. 应用中间件
    即自定义的中间件,一个回调函数,有req,res和next三个参数
  2. 路由中间件
  3. 错误捕获中间件
     app.use(function(err,req,res,next){
       console.error(err.stack)
       res.status(500).send('ddd')
     })
  1. 内置中间件 例如static(静态资源中间件)
      app.use(express.static('./public'))
      //加载出来该路径下的所有静态资源,无需定义路由
  1. 第三方中间件 例如bodyParser(转换post传参的中间件)
    这类中间件使用时直接npm安装第三方的包导入使用即可
app. use(bodyParser.urlencoded({extended:false}))//可以获取post请求传参的req.body
app.use(bodyParser.json())//获取post传参的json格式
app.use(bodyParser.raw())//获取post传参的二进制流格式,此时需要通过multer或者raw-body来获取rawBody

中间件栈即多个中间件组合,通过next进入下一个中间件操作,需要在下一个中间件中使用的数据可以在上一个中间件中将它绑定在req上。通过不同中间件的组合以及拦截,实现不同的需求和功能。
例如:

app.use(
  '/ajax',
  (req,res,next)=>{
     console.log(0)
     next()    
  },
  (req,res,next)=>{
     console.log(1)
     next()    
  },
  (req,res,next)=>{
     console.log(2) 
  }
)

输出结果:

0
1
2

如果在上例中,不添加next(),则无法进入下一个中间件,只能停留在第一个中间件处,则只会输出0

0

当然在Express中也可以使用模板引擎,通常使用官网推荐的模板可以在安装了该模板的包之后直接进行配置

app.set('view engine','pug')//指定模板格式

但是在使用art-template这个模板的时候,有一个坑,官方文档给出的示例配置代码是错误的。
即在配置时需要将

app.set('view', {
    debug: process.env.NODE_ENV !== 'production'
});

改为

app.set('view options', {
    debug: process.env.NODE_ENV !== 'production'
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值