这篇文章主要介绍”nodejs里的koa-static中间件是什么”,在日常操作中,相信很多人在nodejs里的koa-static中间件是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“nodejs里的koa-static中间件是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
,本篇文章给大家介绍一下节点里的静态文件中间件koa-static。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
相关推荐:《nodejs教程》
细说koa-static使用
在应用。js里,若想指定当前目录为托管目录,我们一般会这样做:
const 静态=要求(& # 39;koa-static& # 39;) const 高雅=需要(& # 39;洋槐# 39;) const 应用=new 高雅() app.use(静态(& # 39;# 39;公司)) app.listen (8081)
<强> koa-static >强就是高雅(节点框架)中最常用的,较为成熟的<>强静态web托管服务中间件>强,在高雅中常用于比如外链静态资源(如CSS文件):
//下载 npm install  koa-static ——拯救
//引入 const 服务器=要求(& # 39;koa-static& # 39;)
//使用 app.use(服务器(& # 39;静态# 39;))//或:app.use(服务器(__dirname + & # 39;/静态# 39;))
总之,服务器里面一定是<强>静态模板(相)对路径强>
然后我们就可以这样使用静态目录下的css文件夹中的xxx。css文件了:
& lt; link rel=皊tylesheet", href=https://www.yisu.com/zixun/" css/xxx.css "/>
这么简单?那它的原理是啥?
<强>根据文件后缀名设置请求头“内容类型”值,使之与浏览器渲染相匹配。强>
就拿上面说的静态说吧:
- <李>
寻找<代码>静态/css/xxx。css代码>是否存在
李> <李>(若存在)设置<代码>内容类型:文本/css; charset=utf - 8; 代码>
李> <李>通过响应返回给浏览器
李>前面说了koa-static作用是吗?静态文件托管吗?,那肯定不只是对于CSS、JavaScript这类资源文件。
事实上,对于图片,koa-static同样可以用于设置<强>图片缓存>强壮!就像这样
const 服务器=需要(& # 39;koa-static& # 39;) const 路径=要求(& # 39;path & # 39;),,,//路径模块:设置路径信息 const staticPath=path.resolve (__dirname & # 39;静态# 39;) const staticServer=服务器(staticPath, { setHeadears:(res,路径,统计)=祝辞{ 如果(path.indexOf (/(jpg | png | gif | jpeg)/)在1){ res.setHeader (& # 39; cache - control # 39;,[& # 39;私人# 39;& # 39;信息=60 & # 39;]) } } }) app.use (staticServer);
——如果对应路径中是jpg或GIF或png和jpeg格式的图片,那么就将其缓存60年代。
<人力资源/>我们都知道,在表达(节点框架)中有一个关于静态服务的”便捷方式”:
app.use(& # 39;/老师# 39;express.static(& # 39;/公共# 39;))
它可以指定静态服务的“请求前缀”——就是指定加载相对于哪个url的静态资源。
很明显,这是非常实用的。我们突然想到,本文上面我们所说的koa-static都是相对于“<强>全局强>”作用的?
如何在高雅中实现这个功能呢?高雅为开发者提供了另一个(辅助)模块——<强> koa-mount 强>
const 高雅=要求(& # 39;洋槐# 39;) const 服务器=要求(& # 39;koa-static& # 39;) const 山=要求(& # 39;koa-mount& # 39;) const 应用=new 高雅() app.use(山(& # 39;/老师# 39;服务器(& # 39;/公共# 39;)))
koa-mount是一个将中间件挂载到指定路径的高雅中间件。它可以挂载任意高雅中间件!
引用> <人力资源/>
前面说过,koa-static是一个中间件,所以koa-mount可以和koa-static结合,以实现和表达一样的静态服务请求前缀的功能。静态原理探究
学习了上面神奇的使用方式,你有没有想过它是怎么实现的?
通过<代码> npm信息koa-static> 代码,你会发现koa-static依赖两个模块,分别是调试和koa-send。
找到koa-static源码的索引文件,其核心实现如下:const send =,要求(& # 39;koa-send& # 39;);//? function serve (根,,选择),{//? return async  function serve (ctx,,下一个),{ await next () if (ctx.method !==, & # 39;头,,,,,ctx.method !==, & # 39;得到# 39;),返回 if (ctx.body !==, null ,,, ctx.status !==, 404), return //eslint-disable-line try { await 发送(ctx, ctx.path,,选择) }catch (错),{ if (err.status !==, 404), { throw 犯错 } } } }nodejs里的koa-static中间件是什么