koa源码阅读[3]-koa-send与它的衍生(static)

处理静态文件是一个繁琐的事情,因为静态文件都是来自于服务器上,肯定不能放开所有权限让接口来读取。
各种路径的校验,权限的匹配,都是需要考虑到的地方。
而koa-send和koa-static就是帮助我们处理这些繁琐事情的中间件。
koa-send是koa-static的基础,可以在NPM的界面上看到,static的dependencies中包含了koa-send。

koa源码阅读[3]-koa-send与它的衍生(static)

koa-send主要是用于更方便的处理静态文件,与koa-router之类的中间件不同的是,它并不是直接作为一个函数注入到app.use中的。
而是在某些中间件中进行调用,传入当前请求的Context及文件对应的位置,然后实现功能。

koa-send的GitHub地址

原生的文件读取、传输方式

在Node中,如果使用原生的fs模块进行文件数据传输,大致是这样的操作:

const fs = require('fs') const Koa = require('koa') const Router = require('koa-router') const app = new Koa() const router = new Router() const file = './test.log' const port = 12306 router.get('/log', ctx => { const data = fs.readFileSync(file).toString() ctx.body = data }) app.use(router.routes()) app.listen(port, () => console.log(`Server run as http://127.0.0.1:${port}`))

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzsfx.html