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('目录'))
把静态资源文件托管到某一个目录,如果浏览器请求静态资源,则自动到这个目录下查找
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中间件有哪些类型?相关推荐
- node中间件是什么意思?
node中间件是什么意思? 2020-09-11 16:11:17分类:常见问题 / Node.js答疑阅读(1757)评论(0) 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不 ...
- vue+node全栈移动商城【10】注册页面传值到node中间件
上一节咱们已经实现了注册页面的基本结构,在这一节,咱们把注册页面的值,传入到nodeJs的中间件中,为接下来的保存用户注册信息做好准备. 我们已经在vant的组件输入框上,以v-model的方式双向绑 ...
- node中间件mysql_nodejs 中使用mysql数据有没有类似 mongoose 的中间件?
在nodejs 操作mysql 时 ,我遇到了这样的问题: 一次http请求需要执行多个query,所有为了减少callback 我使用async中的waterfall函数 将query分函数来写,并 ...
- node中间件KOA函数
const Koa = require('koa'); const app = new Koa() //应用程序对象 中间件 // 发送HTTP KOA 接手HTTP //中间件(其实就是 函数) f ...
- Node中间件和路由器
中间件(需要使用express) 本质上是一个函数,包含三个参数 request. response .next 作用 执行任何代码 修改请求和响应对象 终结请求-响应循环(让一次请求得到响应) 调用 ...
- 从原型链看DOM--Node类型
前言: 本系列从原型,原型链,属性类型等方面下手学习了DOM文档对象模型,旨在弄清我们在DOM中常用的每一个属性和方法都清楚它从哪里来要到哪里做什么事,这样对于理解代码有一定启发.全靠自己在总结中摸索 ...
- node入门-学习笔记
文章目录 node入门-学习笔记 node 启动node服务 重构express-run node入门-学习笔记 node 为什么后端要用node, 因为它是js js运行时环境 主要使用expres ...
- Nodejs基础中间件Connect
从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏 ...
- 【详细教程】教你如何使用Node + Express + Typescript开发一个应用
Express是nodejs开发中普遍使用的一个框架,下面要谈的是如何结合Typescript去使用. 目标 我们的目标是能够使用Typescript快速开发我们的应用程序,而最终我们的应用程序却是编 ...
最新文章
- C++中各种弹出对话框
- C/C++学习之路_七: 内存管理
- surefire单元测试 并发 提速
- python参数化_Python 中如何实现参数化测试的方法示例
- 与java线程有关的,线程多少和什么有关?大神们表示有话要说!
- DefaultMessageListenerContainer
- mysql创建数据库与表_PHP MySQL 创建数据库和表 之 Create
- mysql存储过程与触发器的例题
- 极化SAR数据超像素分割和密度峰值聚类
- MCP3421高精度ADC转换器
- Win10 + Ubuntu 安装教程(痛苦踩坑)
- Android 监听短信2种方式:Broadcast和ContentObserver
- 我国期货市场发展潜力和方向
- STM32的ETR引脚计数功能
- win10 nginx部署前端项目(静态资源服务器和HTML)
- 数字化门店| 奶茶店智慧管理系统
- 蓝凌LBPM平台,大公司流程数字化升级必选
- CDN,P2P,PCDN的区别?
- CMS是Content Management System的缩写,意为内容管理系统。
- 【GPT4】微软 GPT-4 测试报告(6)与人类的交互能力
热门文章
- 【领导力训练 一】初级教练的两个闭环
- https://www.makeapie.com打不开 Gallery打不开Gallery访问不到
- HTML5期末大作业:仿阴阳师游戏网站设计——仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板
- 数据库查找姓李的人_数据库中查询姓李的老师的个数
- C++文件流fstream详细说明
- 网络中链路复用的优缺点及交换机作用分析
- Windows 10 上的Yolo3环境安装与配置
- svn 忽略资源设置
- 限制IP访问页面--限制IP
- python中excel制作成绩报表,Python实现导出数据生成excel报表的方法示例