Files
simple-mail-cleaner/backend/node_modules/@fastify/static/example/server-dir-list.js
2026-01-22 19:05:45 +01:00

39 lines
1.0 KiB
JavaScript

'use strict'
const path = require('node:path')
const fastify = require('fastify')({ logger: { level: 'trace' } })
const renderer = (dirs, files) => {
return `
<html><body>
<ul>
${dirs.map(dir => `<li><a href="${dir.href}">${dir.name}</a></li>`).join('\n ')}
</ul>
<ul>
${files.map(file => `<li><a href="${file.href}" target="_blank">${file.name}</a></li>`).join('\n ')}
</ul>
</body></html>
`
}
fastify
.register(require('..'), {
// An absolute path containing static files to serve.
root: path.join(__dirname, '/public'),
// Do not append a trailing slash to prefixes.
prefixAvoidTrailingSlash: true,
// Return a directory listing with a handlebar template.
list: {
// html or json response? html requires a render method.
format: 'html',
// A list of filenames that trigger a directory list response.
names: ['index', 'index.html', 'index.htm', '/'],
// You can provide your own render method as needed.
renderer
}
})
.listen({ port: 3000 }, err => {
if (err) throw err
})