node中间件都有哪些

node中间件有:1、koa-bodyparser;2、koa-body;3、静态资源管理器koa-static;4、cors;5、koa-cors;6、koa-cors2设置请求头等等。

node中间件都有哪些

本文操作环境:Windows7系统,nodejs10.16.2版,Dell G3电脑。

node中间件都有哪些?

node中间件类型:

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

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

node常用的中间件:

在node的学习过程中积累了许多好用的中间件。这些中间件大部分要个koa配合使用

1、koa-bodyparser

这个插件使用来解析前端post请求带来的参数的

//入口文件const bodyParser = require('koa-bodyparser');app.use(bodyParser({//设置可以接收的数据类型    enableTypes:['json', 'form', 'text']}))async function (ctx) {    console.log(ctx.request.body)    ctx.req.on('data',(data) => {        console.log(JSON.parse(data),'文件')    })}

登录后复制

在没有引入koa-bodyparser的情况下只能通过ctx.req.on(‘data’,callback)来获取参数

而引入中间件后只要ctx.request.body就可以获取到参数。相比第一种便利很多。

2、koa-body

这个插件是用来获取请求中上传的文件和文件信息比如图片过zip文件

const koaBody    = require('koa-body')app.use(koaBody({        multipart: true,        formidable: {            maxFileSize: 20 * 1024 * 1024    // 设置上传文件大小最大限制,默认2M        }    }))

登录后复制

在请求的处理中就可以直接通过ctx.request.files就能获取到所有上传的文件的信息。

注意!!!用了koa-body就不要在使用koa-bodyparser会冲突导致前端的post请求返回的status码为canceled

3、静态资源管理器koa-static

在本地测试的时候我上传了一张图片,然后将图片地址打印后是一长串的c://…/name/.png,这样虽然在本地能够访问但是如果放到服务器上就行不通了!

通过引入koa-static可以将静态文件地址指定到项目路径上的某个文件夹然后通过koa监听的端口直接http://192.168.0.177:3030/name.png就能访问图片了

const koaStatic  = require('koa-static')app.use(koaStatic('./public'))//括号中是设置的静态文件路径

登录后复制

4、cors、koa-cors、koa-cors2设置请求头

这几个中间件基本我都是用来配置跨域和请求头的信息

const cors       = require('koa2-cors') app.use(cors({    exposeHeaders: ['multipart/form-data','application/x-www-form-urlencoded']}))

登录后复制

可以自己设置参数也可以不设置参数直接app.use(cors())就可以跨域。

这里说到跨域就顺便提一提原生node跨域的设置方法(同样可以设置请求头的各种配置)

app.use(async (ctx, next) => {   ctx.set('Access-Control-Allow-Origin', ctx.headers.origin)//'*'有可能会问题   ctx.set('Access-Control-Allow-Credentials', 'true')   ctx.set('Access-Control-Allow-Headers', 'Origin ,multipart/form-data, X-Requested-With, Content-Type, Accept')   await next()})

登录后复制

后续要是有遇到哪些好用的中间件再来记录!!!

推荐学习:《node.js视频教程》

以上就是node中间件都有哪些的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2633325.html

(0)
上一篇 2025年3月7日 04:20:12
下一篇 2025年3月7日 04:20:21

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 计算机中的node.dll是什么

    计算机中的node.dll是运行库组件,通过使用DLL,程序可以实现模块化,由相对独立的组件组成;我们可以通过电脑管家修复dll组件丢失问题。 本文操作环境:Windows7系统,nodejs10.16.2,Dell G3电脑。 计算机中的…

    2025年3月7日
    200
  • npm是node吗

    npm不是node,npm是nodejs的包管理器,而nodejs简称node,是javascript的一种运行环境,是对Google V8引擎进行的封装,也就是说nodejs中含有npm,但npm并不是指node。 本文操作环境:Wind…

    2025年3月7日
    200
  • vs在path上找不到node怎么办

    vs在path上找不到node的解决办法:1、在环境变量Path中加入nodejs的路径;2、验证nodejs是否已经加入环境变量;3、重新启动Visual Studio Code即可。 本文操作环境:Windows7系统,nodejs10…

    2025年3月7日 编程技术
    200
  • ubuntu怎么安装node指定版本

    ubuntu安装node指定版本的方法:1、打开命令窗口;2、执行“wget -qO-https://deb.nodesource.com/setup_8.x | sudo -E bash -sudo apt-get…”命令安装…

    2025年3月7日
    200
  • cmd显示node不是内部命令怎么办

    cmd显示node不是内部命令的解决办法:1、把nodejs安装目录路径设置进系统变量或用户变量;2、重启cmd窗口,并在命令窗口中输入“node -v”查看版本号即可。 本文操作环境:windows7系统、nodejs10.16.2版本、…

    2025年3月7日
    200
  • nodejs怎么重启服务

    nodejs重启服务的方法:1、在命令控制台中按“Ctrl+C”键,终止当前所运行的代码;2、执行“node filename.js”命令即可重启node服务。 本教程操作环境:linux5.9.8系统、nodejs 12.19.0版,DE…

    2025年3月7日
    200
  • 一文详解如何在Node中构建一个轻量级的位置分析报告服务API

    本篇文章给大家分享一个实战,介绍一下在node中构建一个位置分析报告api的方法,在本教程结束时,你也会对node.js中的错误处理和良好的文件结构有更好的理解,希望对大家有所帮助! 由经纬度定义的位置,可以与其他数据结合使用,为企业产生洞…

    2025年3月7日 编程技术
    200
  • 聊聊node框架 Nest.js怎么松耦合地整合 Express !

    本篇文章带大家聊聊node框架 nest.js是如何松耦合地整合 express 的,希望对大家有所帮助! Nodejs 提供了 http 模块用于监听端口、处理 http 请求,返回响应,这也是它主要做的事情。 但是 http 模块的 a…

    2025年3月7日 编程技术
    200
  • 通过实践来聊聊利用Node怎么实现内容压缩

    利用nodejs怎么实现内容压缩?下面本篇文章给大家通过实践来聊聊node侧实现内容压缩(gzip/br/deflate)的方法,希望对大家有所帮助! 在查看自己的应用日志时,发现进入日志页面后总是要几秒钟才会加载(接口没做分页),于是打开…

    2025年3月7日 编程技术
    200
  • node nvm是什么

    nvm全称“node.js version management”,是一个nodejs的版本管理工具,用于解决node各种版本存在的不兼容现象,它是可以在同一台机器上安装和切换不同版本的node的工具。 本教程操作环境:windows7系统…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论