在讲Koa源码的文章里面已经讲过了,调用next()其实就是在调用后面的中间件,所以像上面代码那样最后调用next(),就是先执行koa-static然后再执行其他中间件。如果你给defer传了true,其实就是先执行next(),然后再执行koa-static的逻辑,按照这个思路我们来支持下defer吧: 代码语言:javascript 复制 functionserve(root,opts...
前面说了koa-static作用是 ☞静态文件托管☜ ,那肯定不只是对于CSS、JavaScript这类资源文件。 事实上,对于图片,koa-static同样可以用于设置图片缓存!就像这样 constserver=require('koa-static') constpath=require('path')//path模块:设置路径信息 conststaticPath=path.resolve(__dirname,'static') conststaticS...
koa-static是静态资源请求中间件,静态资源例如html、js、css、jpg、png等等,不涉及其他的处理过程,只是单纯的读取文件,所以单独抽离出来。原生koa2也可以实现,但是比较麻烦,使用中间件十分方便。 koa-static的使用 首先我们创建一个简单的node应用,初始化app.js和一个ejs模板index.ejs varKoa=require('koa')varrouter...
defer是配置选项opt里面的一个可选参数,他稍微特殊一点,默认为false,如果你传了true,koa-static会让其他中间件先响应,即使其他中间件写在koa-static后面也会让他先响应,自己最后响应。要实现这个,其实就是控制调用next()的时机。在讲Koa源码的文章里面已经讲过了,调用next()其实就是在调用后面的中间件,所以像上面...
第一篇讲解了Koa的核心架构和源码:手写Koa.js源码 第二篇讲解了@koa/router的架构和源码:手写@koa/router源码 本文会接着讲一个常用的中间件---koa-static,这个中间件是用来搭建静态服务器的。 其实在我之前使用Node.js原生API写一个web服务器已经讲过怎么返回一个静态文件了,代码虽然比较丑,基本流程还是差不多...
Koajs入门视频教程网盘下载地址:https://pan.baidu.com/s/1QN_XkXRXmIw6V7HevntBQQ 提取码:abcd 一、koa-static静态资源中间件的功能: 一个http请求访问web服务静态资源,一般响应结果有三种情况 访问文本,例如js,css,png,jpg,gif 访问静态目录 找不到资源,抛出404错误 koa-static主要是用于访问静态资...
【手写koa-static源码,深入理解静态服务器原理】分享自 @SegmentFault,传送门:O网页链接本文会讲一个常用的中间件---koa-static,这个中间件是用来搭建静态服务器的。其实在我之前使用Node.js原生API写一个web服务器已经讲过怎么返回一个静态文件了,代码虽然比较丑,基本流程还是差不多的:通过请求路径取出正确的文件地...
koa-static就是koa(node框架)中最常用的、较为成熟的静态web托管服务中间件,在koa中常用于比如外链静态资源(如CSS文件): //下载 npm install koa-static --save //引入 const server=require('koa-static') //使用 app.use(server('static'))//或:app.use(server(__dirname+'/static')) ...
{ extension: 'ejs' //文件路径为07_koa_koa_static/views,文件名为index.ejs })) //配置静态web服务的中间件(可配置多个) app.use(static(__dirname + "/static")); app.use(static(__dirname + "/public")); //给定一个地址,首先去static目录中找,如果能找到就返回对应的文件,找不到next() //...
我们的后端用的是Koa 静态文件的组件为koa-static, 刚好koa-static提供了缓存的参数, 我们直接加上即可: 代码语言:javascript 复制 conststatic=require("koa-static");//设置静态资源的路径conststaticPath="./public";letopts={maxage:2592000000,//静态资源30天缓存 实际上 = 2592000秒};app.use(static(path...