zoukankan      html  css  js  c++  java
  • node中间件有哪些类型?

    node中间件就是封装在程序中处理http请求的功能。node中间件是在管道中执行。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。

    中间件为主要的逻辑业务所服务,可分为:应用级中间件、路由级中间件、内置中间件、第三方中间件、错误级中间件。

    1、应用级中间件

    每一个中间件就是调用一个函数,需要配合其他的中间件或者路由使用

    server (函数) 拦截所有的路由

    server.use('/reg',函数);拦截特定的路由

    const express=require('express');
    var server=express();
    server.listen(3000);
    //中间件拦截注册路由/reg
    server.use('/reg',(req,res,next)=>{
        console.log('注册验证');
        next();
    });
    
    server.use('/login',(req,res)=>{
        console.log('记录了日志');
    })
    server.get('/reg',(req,res,next)=>{
        res.send('注册成功');
        next();
    });
    
    server.get('/login',(req,res)=>{
        res.send('登陆成功');
    })

     

    2、内置中间件

    server.use(express.static('目录'))

    把静态资源文件托管到某一个目录,如果浏览器请求静态资源,则自动到这个目录下查找

    佛山vi设计https://www.houdianzi.com/fsvi/ 豌豆资源搜索大全https://55wd.com

    3、第三方中间件

    (1)body-parser,将post请求数据解析为对象

    const express = require('express');
    //引入body-parser中间件
    const bodyParser=require('body-parser');
    
    var server=express();
    server.listen(3000);
    // 托管静态资源到public
    server.use(express.static('./public'));
    
    //使用body-parser中间件,将post请求的数据解析为对象
    //extended是否要使用扩展qs模块解析为对象
    //如果是false,不使用,而去使用querystring模块
    server.use(bodyParser.urlencoded(
        {extended:false}
    ))
    
    server.post('/mylogin',(req,res)=>{
        console.log(req.body);
        res.send('登陆成功');
    })

    (2)mysql模块

    普通连接

    //引入mysql模块
    const mysql =require('mysql');
    //1、普通连接
    //1、1创建连接
    var connection=mysql.createConnection({
        host:'127.0.0.1',
        port:'3306',
        user:'root',
        password:'1234',
        database:'tedu'
    });
    //1.2执行连接
    connection.connect();
    //执行sql语句
    connection.query('select * from emp',(err,result)=>{
        if(err) throw err;
        console.log(result);
    });
    //关闭连接
    connection.end();

    连接池

    const mysql=require('mysql');
    //使用连接池
    //创建连接池对象
    var pool=mysql.createPool(
        {
            host:'127.0.0.1',
            port:'3306',
            user:'root',
            password:'1234',
            database:'tedu',
            connectionLimit:20
        }
    );
    //执行sql语句
    pool.query('select * from emp where eid=2',(err,result)=>{
        if(err) throw err;
        console.log(result);
    })
    const mysql=require('mysql');
    var pool=mysql.createPool({
        'host':'127.0.0.1',
        port:'3306',
        user:'root',
        password:'1234',
        database:'tedu',
        connectionLimit:20
    })
    //使用占位符插入数据
    // pool.query("insert into emp values(?,?,?,?,?,?)",[null,'yt','1','1995-12-24','9000','20'],(err,result)=>{
    //     if(err) throw err;
    //     console.log(result);
    // });
    //使用对象插入数据
    // var emp={
    //     eid:null,
    //     ename:'html',
    //     sex:1,
    //     birthday:'1995-12-25',
    //     salary:10000,
    //     deptid:30
    // }
    // pool.query('insert into emp set ?',[emp],(err,result)=>{
    //     if(err) throw err;
    //     console.log(result);
    // })
    //使用占位符删除编号为10的数据
    pool.query('delete  from emp where eid=?',[10],(err,result)=>{
        if(err) throw err;
        console.log(result);
        if(result.affectedRows>0){
            console.log('删除成功');
        }
        else{
            console.log('删除失败');
        }
    })
  • 相关阅读:
    字符串类型
    mysql-schema-sync 实现 不同环境实例间表结构统一
    order by 运行过程
    MySQL 生成随机测试数据
    MySQL binlog 日志处理
    MySQL 查询优化
    使用 pyenv 管理不同的 Python 版本
    使用 pyenv 管理不同的 Python 版本
    MVC5 已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。
    在ASP.net MVC中利用ajax配合razor进行局部加载(给页面套好样式以后,一刷新就不合适了,终于找到了解决方案)
  • 原文地址:https://www.cnblogs.com/qianxiaox/p/13847630.html
Copyright © 2011-2022 走看看