@medley/serve-static
v0.3.0
Published
Medley plugin for serving static files.
Downloads
10
Readme
@medley/serve-static
Medley plugin for serving static files.
Installation
npm install @medley/serve-static --save
# or
yarn add @medley/serve-static
Usage
const medley = require('@medley/medley');
const path = require('path');
const app = medley();
app.register(require('@medley/serve-static'), {
root: path.join(__dirname, 'static')
});
// Serves files in the './static' folder from the root "/" URL
Options
root
(required)
The absolute path of the directory that contains the files to serve. The
file to serve will be determined by combining this value with req.url
.
prefix
Default: '/'
A URL prefix that serves as a virtual mount path for the static directory.
const medley = require('@medley/medley');
const path = require('path');
const app = medley();
app.register(require('@medley/serve-static'), {
root: path.join(__dirname, 'static'),
prefix: '/static/'
});
// A request to "/static/styles.css" will get 'styles.css' in the './static' folder
Tip: Registering the plugin on a prefixed sub-app is an alternative to using this option.
setHeaders
Default: undefined
A function to set custom headers on the response. Setting headers must be done synchronously. The function receives the following arguments:
res
- Node'sServerResponse
object for the request.filePath
- The absolute path of the file that is being sent.stats
- The fs stats object of the file that is being sent.
Example:
// https://www.npmjs.com/package/content-disposition
const contentDisposition = require('content-disposition');
// Set header to force download
function setHeaders(res, filePath, stats) {
res.setHeader('content-disposition', contentDisposition(filePath));
}
app.register(require('@medley/serve-static'), {
root: path.join(__dirname, 'downloads'),
setHeaders: setHeaders
});
send
Options
The following options are also supported and will be passed directly to the
send
module:
About Errors
The send
module is only designed to work with the native Node http
module,
so handling errors when using this module with Medley doesn’t work very well
(without writing major workarounds that could end up hurting performance).
For this reason, if an error occurs while trying to send a file (including 404
errors when a file isn’t found), the error will be sent to Medley's
onErrorSending
function and a response will be sent automatically.