浅谈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 相关文章推荐
让jQuery与其他JavaScript库并存避免冲突的方法
Dec 23 Javascript
JS动态增删表格行的方法
Mar 03 Javascript
Angular2学习笔记——详解NgModule模块
Dec 02 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
详解webpack es6 to es5支持配置
May 04 Javascript
浅谈node的事件机制
Oct 09 Javascript
Vue filter介绍及详细使用
Apr 04 Javascript
微信小程序实现图片上传功能
May 28 Javascript
vue.js轮播图组件使用方法详解
Jul 03 Javascript
使用async await 封装 axios的方法
Jul 09 Javascript
20多个小事例带你重温ES10新特性(小结)
Sep 29 Javascript
CountUp.js数字滚动插件使用方法详解
Oct 17 Javascript
JavaScript实现简单图片切换
何时使用Map来代替普通的JS对象
详解Js模块化的作用原理和方案
详解JavaScript中的执行上下文及调用堆栈
JavaScript实现淘宝商品图切换效果
JavaScript实现显示和隐藏图片
Apr 29 #Javascript
JS Canvas接口和动画效果大全
Apr 29 #Javascript
You might like
常用的php对象类型判断
2008/08/27 PHP
编写PHP脚本过滤用户上传的图片
2015/07/03 PHP
PHP简单字符串过滤方法示例
2016/09/04 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
js 设置选中行的样式的实现代码
2010/05/24 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
Python常见的pandas用法demo示例
2019/03/16 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
python2 对excel表格操作完整示例
2020/02/23 Python
Python 串口通信的实现
2020/09/29 Python
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
如何开启linux的ssh服务
2013/06/03 面试题
财务经理岗位职责
2013/11/09 职场文书
正规的求职信范文分享
2013/12/11 职场文书
文案策划求职信
2014/03/18 职场文书
小学生志愿者活动方案
2014/08/23 职场文书
课外科技活动总结
2014/08/27 职场文书
2014年施工员工作总结
2014/11/18 职场文书
店铺转让协议书
2015/01/29 职场文书
新郎结婚保证书
2015/02/26 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
Oracle表空间与权限的深入讲解
2021/11/17 Oracle
Python字符串常规操作小结
2022/04/03 Python