Static file server middleware
Clone or download
Latest commit 9b11d84 Jun 19, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
test fix `index: false` bug if path is directory Jul 9, 2017
.eslintrc lint Jun 30, 2017
.gitignore gitignore: add package-lock.json Jun 30, 2017
.npmrc npm: disable package-lock May 17, 2018
.travis.yml travis: add node@10 Jun 19, 2018
History.md 5.0.0 Jun 19, 2018
Readme.md update readme (#119) Dec 18, 2017
example.js lint Jun 30, 2017
index.js fix: `serve` mutates `opts` argument so it cannot be reused (#117) Nov 15, 2017
package.json 5.0.0 Jun 19, 2018

Readme.md

koa-static

NPM version Build status Test coverage Dependency Status License Downloads

Koa static file serving middleware, wrapper for koa-send.

Installation

$ npm install koa-static

API

const Koa = require('koa');
const app = new Koa();
app.use(require('koa-static')(root, opts));
  • root root directory string. nothing above this root directory can be served
  • opts options object.

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.
  • setHeaders Function to set custom headers on response.
  • 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)

Example

const serve = require('koa-static');
const Koa = require('koa');
const app = new Koa();

// $ GET /package.json
app.use(serve('.'));

// $ GET /hello.txt
app.use(serve('test/fixtures'));

// or use absolute paths
app.use(serve(__dirname + '/test/fixtures'));

app.listen(3000);

console.log('listening on port 3000');

See also

License

MIT