Koa-Static 该换换了吧 尝尝 Awesome-Static

实在照样得按自各儿的需求来。

koa-static 有啥题目么

koa-static是一个异常轻量的koa中间件,可以敏捷的搭建起一个静态文件服务器,平常我们把静态文件都放进public,而且经由过程相似koa-static如许的东西来将我们的public作为静态目次,如许的话,我们就可以直接经由过程根路由举行接见了。

emmmm,扯多了。回到正轨

起首koa-static不能映射到其他的路由上,平常是跟路由,比方接见 public/main.html(假定 public 为静态目次),那末就可以经由过程 host:port/main.html 举行接见获得 main.html,然则有时候我不想映射到根路由,这时候,koa-static就显得力不从心了。

第二个题目是koa-static只支撑GETHEAD两个 HTTP 要领来举行接见,这在大多数场景下是有效的,然则难免会碰到一些迥殊的场景,比方你想用POST要领来拿到服务器上的静态文件(假如你想)。

awesome-static

吼,所以我做了awesome-staticawesome-statickoa-static一样,都是对 koa-send的一层封装,只不过awesome-staticTypescript编写,对 VSCode 支撑优越。

awesome-static扩大了koa-staticoptions,添加了两个字段

  • route
  • allowMethods

route为要映射到的路由,allowMethods是要许可的 HTTP 要领

这两个字段都是可选的,route 的默认值就是根路由,allowMethods 的默认值为 HEADGET ,所以你能像运用 koa-static 一样的运用 awesome-static

看一下运用要领

const Koa = require('koa');
const app = new Koa();
const { AwesomeStatic } = require('awesome-static');

app.use(AwesomeStatic('public'));

app.listen(8888);

public 下有一个 html 文件,下面是 public 的目次构造

public
└── main.html

在启动服务器后就可以经由过程http://localhost:8888/main.html举行接见了

如今来设置一下 route

const Koa = require('koa');
const app = new Koa();
const { AwesomeStatic } = require('awesome-static');

app.use(AwesomeStatic('public', {
    route:"static"
}));

app.listen(8888);

设置了 routestatic 那末如今接见 main.html 就需要接见http://localhost:8888/static/main.html

假如再设置一下 allowMethods ,来设置一下许可的 HTTP 要领,让它只能经由过程POST 来接见

const Koa = require('koa');
const app = new Koa();
const { AwesomeStatic } = require('awesome-static');

app.use(AwesomeStatic('public', {
    route:"static",
    allowMethods:["POST"]
}));

app.listen(8888);

如今再经由过程 http://localhost:8888/static/main.html 就会去 404 了~

来模仿一个 POST 要求

curl http://localhost:8888/static/main.html -X POST

Output:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    <h1>Main</h1>
  </body>
</html>

Github

https://github.com/HaoDaWang/awesome-static
    原文作者:浩大王
    原文地址: https://segmentfault.com/a/1190000018014729
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞