Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/owengombas/static-koa-router
Serve static files through koa-router
https://github.com/owengombas/static-koa-router
css file html image koa public router serve static
Last synced: about 2 months ago
JSON representation
Serve static files through koa-router
- Host: GitHub
- URL: https://github.com/owengombas/static-koa-router
- Owner: owengombas
- License: mit
- Created: 2019-02-28T11:11:18.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-03T17:00:41.000Z (about 2 years ago)
- Last Synced: 2024-12-15T00:58:57.778Z (about 2 months ago)
- Topics: css, file, html, image, koa, public, router, serve, static
- Language: TypeScript
- Size: 529 KB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Serve static file through koa-router
[![Build Status](https://travis-ci.org/OwenCalvin/static-koa-router.svg?branch=master)](https://travis-ci.org/OwenCalvin/static-koa-router)## Installation
```
npm i static-koa-router
```
```
yarn add static-koa-router
```### Usage
`Serve(dirPath: string, router: Router, options?: Options)`
You simply need to pass the **dir path** at the first parameter, the **router instance** (koa-router) at the second parameter and optionaly the **options** at third parameter.##### Options
- `maxage` Browser cache max-age in milliseconds. defaults to 0
- `hidden` Allow transfer of hidden files. defaults to false
- `index` Default file name, defaults to 'index.html'
- `defer` If true, serves after `return next()`, allowing any downstream middleware to respond first.
- `gzip` Try to serve the gzipped version of a file automatically when gzip is supported by a client and if the requested file with .gz extension exists. defaults to true.
- `br` Try to serve the brotli version of a file automatically when brotli is supported by a client and if the requested file with .br extension exists (note, that brotli is only accepted over https). defaults to true.
- `extensions` Try to match extensions from passed array to search for file when no extension is sufficed in URL. First found is served. (defaults to `false`)
- [setHeaders](https://github.com/koajs/send#setheaders) Function to set custom headers on response.### Examples
##### Typescript
```javascript
import { Serve } from "static-koa-router";
import * as KoaRouter from "koa-router";
import * as Koa from "koa";
import * as Http from "http";const app = new Koa();
const router = new KoaRouter({
prefix: "/public"
});Serve(`${__dirname}/public`, router);
app.use(router.routes());
const server = Http.createServer(app.callback());
server.listen(1337, "localhost", () => {
console.log("Server started");
});
```##### Javascript
```javascript
const { Serve } = require("static-koa-router");
const KoaRouter = require("koa-router");
const Koa = require("koa");
const Http = require("http");const app = new Koa();
const router = new KoaRouter({
prefix: "/public"
});Serve(`${__dirname}/public`, router);
app.use(router.routes());
const server = Http.createServer(app.callback());
server.listen(1337, "localhost", () => {
console.log("Server started");
});
```### See also
[koa-static](https://github.com/koajs/static)
[koa-send](https://github.com/koajs/send)
[koa-router](https://github.com/ZijianHe/koa-router)### License
MIT - Owen Calvin