浅谈node.js中间件有哪些类型


Posted in Javascript onApril 29, 2021

概述

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('目录'))

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

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('删除失败');
    }
})

以上就是浅谈node.js中间件有哪些类型的详细内容,更多关于node.js中间件的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
浅谈checkbox的一些操作(实战经验)
Nov 20 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
jQuery+HTML5实现图片上传前预览效果
Aug 20 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
Jul 22 Javascript
JS读写CSS样式的方法汇总
Aug 16 Javascript
Bootstrap框架实现广告轮播效果
Nov 28 Javascript
微信小程序 登录实例详解
Jan 16 Javascript
基于JavaScript实现弹幕特效
Aug 27 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
Jul 30 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
JavaScript实现页面中录音功能的方法
Jun 04 Javascript
JavaScript实现简单图片切换
何时使用Map来代替普通的JS对象
详解Js模块化的作用原理和方案
详解JavaScript中的执行上下文及调用堆栈
JavaScript实现淘宝商品图切换效果
JavaScript实现显示和隐藏图片
Apr 29 #Javascript
JS Canvas接口和动画效果大全
Apr 29 #Javascript
You might like
2021年最新CPU天梯图
2021/03/04 数码科技
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
php5.5新数组函数array_column使用
2013/07/08 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
PHP7+Nginx的配置与安装教程详解
2016/05/10 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
2016/04/03 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
vue 组件简介
2020/07/31 Javascript
JS删除对象中某一属性案例详解
2020/09/08 Javascript
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
Python多线程下载文件的方法
2015/07/10 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
python logging添加filter教程
2019/12/24 Python
Overload和Override的区别
2012/09/02 面试题
毕业生的自我评价
2013/12/30 职场文书
代办出身证明书
2014/10/21 职场文书
邀请函的格式
2015/01/30 职场文书
小学端午节活动总结
2015/02/11 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
毕业班工作总结
2015/08/10 职场文书
小学副班长竞选稿
2015/11/21 职场文书
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js