nodejs express中间件
web nodejs 2023-01-13 707 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6503219 2619 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

中间件的基本使用

const express = require('express')
const app = express()
// 常量mv 所指向的,就是一个中间件函数
const mv = function(req,res,next){
  console.log('这是一个最简单的中间件函数!')
  // 注意: 在当前中间件的业务处理完毕之后,必须调用next()这个函数
  // 表示把流转关系转交给下一个中间件或路由
  next()
}
app.use(mv)
//定义一个路由
app.get('/', (req, res) => { 
  res.send('Home page.')
})
app.listen(80,()=>{
  console.log('server at http://127.0.0.1');
})
3.2.1 定义中间件函数
可以通过如下的方式,定义一个最简单的中间件函数:
// 常量mv 所指向的,就是一个中间件函数
const mv = function(req,res,next){
console.log('这是一个最简单的中间件函数!')
// 注意: 在当前中间件的业务处理完毕之后,必须调用next()这个函数
// 表示把流转关系转交给下一个中间件或路由
next()
}
3.2.2 全局生效的中间件
客户端发起的任何请求,到达服务端之后,都会触发这个中间件,叫做全局生效的中间件。
通过调用app.use(中间件函数),即可定义一个全局生效的中间件,示例代码如下:
//定义一个最简单的中间件函数
const mw = function(req, res, next) {
        console.log('这是最简单的中间件函数')
            //把流转关系,转交给下一个中间件或路由
        next()
    }
    //将 mw 注册为全局生效的中间件
app.use(mw)
3.3.3 定义全局生效中间件的简化形式

//全局生效的中间价
  app.use(function(req,res,next){
      console.log('这是最简单的中间件函数')
  next()
  })
3.3.4 中间件的作用
多个中间件之间,共享同一份 req 和 res。基于这样的特性,我们可以在上游的中间件中,统一为 req 或 res 对象添加自定义的属性或方法,供下游的中间件或路由进行使用。
from clipboard

3.3.5 定义多个全局中间件
可以使用app.use() 连续定义多个 全局中间件。客户端请求到达服务器之后,会按照中间件定义的先后顺序依次调用,示例代码如下:

    //定义第一个中间件
app.use((req, res, next) => {
        console.log('调用了第一个中间件')
        next()
    })
    //定义第二个中间件
app.use((req, res, next) => {
        console.log('调用了第二个中间件')
        next()
    })
    //定义一个路由
app.get('/user', (req, res) => { //请求这个路由,会依次触发上述两个全局中间件
    res.send('Home page.')
})
3.3.6 局部生效的中间件
不使用app.use()定义的中间件,叫做局部生效的中间件,示例代码如下:
//定义一个局部中间件函数
const mw1 = (req, res, next) => {
    console.log('这是一个局部中间件函数')
    next()
}
//mw1 只会在当前路由生效  这种用法属于“局部生效的中间件”
app.get('/', mw1, (req, res) => {
    res.send('home page.')
})
//  mv1中间件不会影响下面的这个路由
app.get('/user', (req, res) => {
    res.send('user page.')
})
3.3.7 定义多个局部中间件
可以在路由中,通过两种等价的方式,使用多个局部中间件。
// 以下两种写法是“完全等价”的,根据自己的喜好,任意选择任意一种方式使用
app.get('/',mw1,mw2,(req,res)=>{res.send('Home page')})
app.get('/',[mw1,mw2],(req,res)=>{res.send('Home page')})

版权声明:本篇文章来源于网络。 来源链接

相关推荐
windows如何把已安装的nodejs高版本降级为低版本
nodejs | 2022-10-17 2089
第一步:先清空本地安装的node.js版本 1.按健win+R弹出窗口,键盘输入cmd,然后敲回车,然后进入命令控制行窗口,并输入where node查看之前本地安装的node的路径 2.找到上面找到的路径,将node.exe所在的父目录里面的所有东西都删除 3.为了彻底删除之前安装的node.js,鼠...
This application is only supported on Windows 8.1, Windows Server 2012 R2, or hi gher.
nodejs | 2022-07-06 1810
有的nodejs版本不支持win7,在win7系统中执行npm -v时会有以下提示 This application is only supported on Windows 8.1, Windows Server 2012 R2, or hi gher. 下载v12.16.2及之前的版本即可 https://nodejs.org/d...
评论:0条
评论加载中...
发表评论