美文网首页
node.js 中间件

node.js 中间件

作者: Vergil_wj | 来源:发表于2021-07-18 00:41 被阅读0次

1、浏览器发送请求;
2、express 接受请求;
中间处理的过程
3、路由函数处理渲染;
4、res.render 渲染;

中间件函数可以执行以下任务:

  • 执行任何代码;
  • 对请求和相应对象进行更改;
  • 结束请求、响应循环;
  • 调用堆栈中的下一个中间件函数;

应用层中间件

中间件使用 app.use

app.use(function(req,res,next){
    console.log("访问任何页面,此函数都会被调用")
    next()
})

例如:

const express = require("express");

var app  = express();

//匹配路由之前的操作
app.use(function(req,res,next){
    console.log("访问任何页面,此函数都会被调用")
    next()
});

app.get("/",function(req,res){
    res.send("主页");
});

app.listen(8080);

路由中间件

绑定 express.Router()

模块化代码,防止都在同一个页面内臃肿。

var router = express.Router()
例1:商城模块

mall.js:

let express = requier("express")

let router1 = express.Router()

router1.get('/',(req,res){
    res.send("商城首页")
})

router1.get('/lsit',(req,res){
    res.send("商城产品列表")
})

module.exports = router1

app.js

let router1 = require('./routers/mall')
app.user('/mall',router1)
例2:api 模块

api.js

let express = requier("express")

let api= express.Router()

// api 中间件,允许跨域访问
api.use(rucntion(req,res,next){
    res.append('Access-Control-Allow-Origin',"*");
    res.append('Access-Control-Allow-Content-Type',"*");
    next();
})

api.get('/',(req,res){
   res.json({page:1})
})

module.exports = api

app.js

let api= require('./routers/api')
app.user('/api',api)

内置中间件

通过 express.static 我们可以指定要加载的静态资源。

express.static(root, [options]);

第三方中间件

例如 body-parser、cookie-parser,采用引入外部模块的方式来获得更多的应用操作。

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var cookie-parser= require('cookie-parser');

处理错误的中间件

// catch 404 and forward to error handler
// 404 中间件
// 如果请求路径在静态页面、路由中都没有找到,则报 404 错误。
app.use(function(req, res, next) {

  //也可以在这里自己进行 404 页面渲染
  // res.render('404.ejs')

  next(createError(404));  //创建 404 报错,来自于 var createError = require('http-errors');
});

// error handler
// 处理错误中间件
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

相关文章

  • Node.js防范csrf攻击

    csurf Node.js 防范csrf攻击中间件 需要session中间件(如:express-session)...

  • node.js express框架常用API

    重要中间件 body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 UR...

  • NodeJS 中间件机制

    理解 Node.js 中间件机制核心代码的实现,加深对中间件机制的理解,有助于更好的使用和编写中间件。 一、中间件...

  • Node.js 常用中间件

    Node.js 常用中间件 async jsonwebtoken bluebird crypto mongoose...

  • 知识点总结

    Koa2中间件 koa(面向node.js的表达式HTTP中间件框架)、koa-router(路由中间件)、koa...

  • body-parser 使用详解

    一、简介 github node.js body 解析中间件 处理程序之前,在中间件中对传入的请求体进行解析(re...

  • req.query与req.body

    请求报文的组成中间件 req.query req.query在Node.js中用于映射中间件(Asp.net中则为...

  • express及常用API

    核心就是中间件 概念 express 是TJ大神用Node.js封装的一个Web框架 核心概念是中间件 编程模型 ...

  • mongogoose的使用

    多种中间件可以用于连接node.js与MongoDB,目前比较常用的Mongoose

  • 数据解析的方法

    解析数据的模块body-parser (Node.js的身体解析中间件) installation $ npm i...

网友评论

      本文标题:node.js 中间件

      本文链接:https://www.haomeiwen.com/subject/eeytpltx.html