美文网首页
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 中间件

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