美文网首页
koa-static

koa-static

作者: 卡布奇洛猫 | 来源:发表于2018-09-11 19:35 被阅读0次

koa-static是一个koa-send的封装,所以重点其实是koa-send.
koa-send会接收三个参数,ctx,path与opt.
其中path是访问的url.opt.root是我们设置的静态资源根路径,他会被赋值给root.
path和root会被path的join和normalize拼接成一个规范化的路径并赋值给path.这个path用来查找要传输的文件.

stats = await fs.stat(path)

如果他是一个目录,那么就在那个目录下查找是否有index.html文件.

    if (stats.isDirectory()) {
      if (format && index) {
        // index为opt.index->index.html
        path += '/' + index
        stats = await fs.stat(path)
      } else {
        return
      }
    }

之后会用该path来创建一个可读流,用于向客户端传递数据.

ctx.body = fs.createReadStream(path)

整个send模块就是这样了,koa-static的功能也是由它实现的.

相关文章

网友评论

      本文标题:koa-static

      本文链接:https://www.haomeiwen.com/subject/honugftx.html