|
import express from 'express' |
|
import cookieParser from 'cookie-parser' |
|
import contentDisposition from 'content-disposition' |
|
import { resolve } from 'node:path' |
|
|
|
export class Middleware extends plugin { |
|
constructor () { |
|
super({ |
|
name: '中间件', |
|
priority: 1, |
|
rule: [ |
|
{ |
|
method: 'use', |
|
use: 'middleware' |
|
}, |
|
{ |
|
method: 'use', |
|
path: '/download', |
|
use: 'staticDownload' |
|
} |
|
] |
|
}) |
|
} |
|
|
|
middleware () { |
|
return [ |
|
cookieParser(), |
|
express.urlencoded({ limit: '500kb', extended: false }), |
|
express.json({ limit: '500kb' }), |
|
express.static(resolve('public'), { dotfiles: 'ignore', maxAge: '5m' }) |
|
] |
|
} |
|
|
|
staticDownload () { |
|
return express.static(resolve('public/.download'), { |
|
index: false, |
|
setHeaders: (res, path) => res.setHeader('Content-Disposition', contentDisposition(path)) |
|
}) |
|
} |
|
} |