NodeJs express自定义中间件
用过express 的开发者,想必一定用过中间件。本文就说一下自定义的中间件。
一,先看下中间件的使用。
1访问文件的中间件 express-static
const express = require("express");
const expressStatic = require("express-static");var app = express();
app.listen(8080);// 当访问接口的时候,会走下面的操作
// 比如 http://localhost:8080/login?name=zhangsan&age=18
app.get("/login", function (req, res) {console.log(req.query);res.send({ok: false, msg: '信息'})
})
// 当访问文件的时候,会走下面的操作
// 比如 http://localhost:8080/a.html
app.use(expressStatic('./www'));
2 处理post 请求,请求数据的处理中间件 body-parser
const express = require('express');
const bodyParser = require('body-parser');var app = express();
app.listen(8080);app.use(bodyParser.urlencoded({extended: false,limit: 2*1024*1024
}))app.use("/login", function (req, res) {console.log("body", req.body);
})
如果不用中间件的话,post 请求过来的数据是要自己去处理的,那么使用了中间件后,就会很方便的拿到请求参数。
总的来说中间件的使用就是
app.use(fn); //中间件的函数
app.use("地址", function (req, res) {// 业务
})
二,自己开发中间件
1 链式操作
app.use("/", function (req, res, next) {console.log("AAAA");next();
})
app.use("/", function (req, res, next) {console.log("BBBB");
})
这样写的话 控制台会先后输出
AAAA
BBBB
那么只要在写 AAAA的地方做一些处理,那么在BBBB里面就可以直接使用AAAA的处理结果。
看下 Express 4.x 的官网
可以可以看到 use 的参数可以只传一个函数体,那么中间件的函数定义就是在这里。
2 自己定义一个post 处理中间件。
const express = require('express');
const querystring = require('querystring');
var app = express();app.listen(8080);app.use(function (req, res, next) {var str = "";req.on("data", function (data) {str += data;});req.on("end", function () {// 把数据绑定到 req 对象上,然后在后面就能够使用req.body = querystring.parse(str);next();})
})
app.use("/", function (req, res, next) {console.log("拿到数据", req.body)
})
NodeJs express自定义中间件相关推荐
- nodejs框架express之中间件的运用场景(初学)
nodejs框架express之中间件的运用场景(初学) //引入express框架 const express = require('express'); //创建网站服务器 const app = ...
- NodeJS+Express+mySQL服务端开发详解
NodeJS+Express+mySQL服务端开发详解 随着NodeJS的发展,现在已经被很多人熟知,NodeJS已经成为了前端开发人员必备的技能.本文不会对NodeJS过多介绍 如果你感兴趣可以访问 ...
- nodejs express use 传值_再也不怕面试官问你express和koa的区别了
前言 用了那么多年的express.js,终于有时间来深入学习express,然后顺便再和koa2的实现方式对比一下. 老实说,还没看express.js源码之前,一直觉得express.js还是很不 ...
- Day 73 Npm包管理 +Express+路由+中间件
三.npm包管理 1.介绍 npm是NodeJs项目模块管理工具,它已经集成了nodejs安装包中(自5.2以后新增了npx指令用于解决调用项目内部安装的模块繁琐的问题),使用npm可以实现从NPM服 ...
- node.js服务端笔记文档学会写接口,学习分类:path、包、模块化、fs、express、中间件、jwt、开发模式、cors。
node.js 学习笔记 node.js服务端笔记文档学会写接口,path.包.模块化.fs.express.中间件.JWT.开发模式.cors. gitee:代码接口笔记 1什么是node.js n ...
- nodejs + express + multiparty处理上传文件接口:踩坑及总结
文章目录 一.简单的文件上传 模块 接口 二.multipart/form-data随着表单上传文件 前端 后端 1. multiparty 2.connect-multiparty 在平时工作和自己 ...
- windows下nodejs express安装及入门网站,视频资料,开源项目介绍
windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件 下载地址 ...
- nodejs ajax进度条,Ajax异步文件上传与NodeJS express服务端处理的示例分析
Ajax异步文件上传与NodeJS express服务端处理的示例分析 发布时间:2021-07-24 11:17:21 来源:亿速云 阅读:79 作者:小新 这篇文章主要介绍Ajax异步文件上传与N ...
- Vue + Nodejs + Express 解决跨域的问题
Vue + Nodejs + Express 解决跨域的问题 首先检测你的Vue的版本号 此文章针对3.0版本解决跨域问题 $ vue -V 2.X or 3.X 直接访问如下 created() { ...
最新文章
- 2014-03-11 Spring的学习(3)------面向切面编程(AOP)
- 第二次作业(软件工作量的估记方法)
- 事业单位招 计算机面试实践技能操作,2019山东事业单位卫生类招聘面试实践技能概论...
- 基于TensorFlow的2个机器学习简单应用实例
- PHP PDO(mysql) 封装类
- 比navicat还好用的mysql可视化工具
- 验证码错误的可能问题
- Google jib插件的使用
- 如何设计H5编辑器中的模版库并实现自动生成封面图
- 硬盘柱面损坏怎么办_硬盘在坏道检测中出现了要多少个损坏柱面才说明这个硬盘废了?...
- 菜鸡随笔第二笔:insmod模块时显示已杀死
- python解一元二次方程虚根_Python编程实现数学运算求一元二次方程的实根算法示例...
- 介绍一个“王者”算法,它能认出游戏里的所有英雄
- 微信多开软件苹果版_微信最新PC版 无限多开以及消息防撤回
- Android 友盟统计集成
- final可以修饰些什么
- git忽略已加入版本控制的文件
- 插入排序基本思路与算法
- 计算机毕业设计之java+ssm基于android的家庭理财系统app
- day9-字符串作业
热门文章
- rad linux下安装mysql_Linux(CentOS或RadHat)下MySQL源码安装
- [转载] Python基础之类型转换与算术运算符
- c语言if else语句_查找C程序的输出(如果为else语句)| 设置1
- php整合支付宝,Thinkphp5.0整合支付宝在线下单
- java结构设计_Java基本的程序设计结构(一)
- fakeapp2.2.0下载_软件下载 | SuperCuger 测量平差系统 V1.0
- 湖南工业大学在线计算机作业答案,湖南工业大学《计算机组成原理》试题集,共7份,有部分答案...
- java 的io流需要学吗_Java Io流怎么学习呢?
- Java BigDecimal toString()方法与示例
- 聊一聊开发常用小工具