diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-04-13 00:51:55 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-04-13 00:51:55 +0900 |
| commit | a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9 (patch) | |
| tree | 1d9ef7220ca46696ee4ada43f41fcd59d386abc8 /src/server/index.ts | |
| parent | Merge branch 'master' of https://github.com/syuilo/misskey (diff) | |
| download | sharkey-a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9.tar.gz sharkey-a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9.tar.bz2 sharkey-a3bd4ba42693b1dc99ef586ef35f61dc53cdf9e9.zip | |
wip
Diffstat (limited to 'src/server/index.ts')
| -rw-r--r-- | src/server/index.ts | 69 |
1 files changed, 21 insertions, 48 deletions
diff --git a/src/server/index.ts b/src/server/index.ts index 962d3b5f4f..e9bfa9e10b 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -5,67 +5,40 @@ import * as fs from 'fs'; import * as http from 'http'; import * as https from 'https'; -import * as express from 'express'; -import * as morgan from 'morgan'; +import * as Koa from 'koa'; +import * as Router from 'koa-router'; +import * as bodyParser from 'koa-bodyparser'; import activityPub from './activitypub'; import webFinger from './webfinger'; -import log from './log-request'; import config from '../config'; -/** - * Init app - */ -const app = express(); -app.disable('x-powered-by'); -app.set('trust proxy', 'loopback'); - -app.use(morgan(process.env.NODE_ENV == 'production' ? 'combined' : 'dev', { - // create a write stream (in append mode) - stream: config.accesslog ? fs.createWriteStream(config.accesslog) : null -})); - -app.use((req, res, next) => { - log(req); - next(); -}); +// Init server +const app = new Koa(); +app.proxy = true; +app.use(bodyParser); -/** - * HSTS - * 6month(15552000sec) - */ +// HSTS +// 6months (15552000sec) if (config.url.startsWith('https')) { - app.use((req, res, next) => { - res.header('strict-transport-security', 'max-age=15552000; preload'); + app.use((ctx, next) => { + ctx.set('strict-transport-security', 'max-age=15552000; preload'); next(); }); } -// Drop request when without 'Host' header -app.use((req, res, next) => { - if (!req.headers['host']) { - res.sendStatus(400); - } else { - next(); - } -}); +// Init router +const router = new Router(); -// 互換性のため -app.post('/meta', (req, res) => { - res.header('Access-Control-Allow-Origin', '*'); - res.json({ - version: 'nighthike' - }); -}); +// Routing +router.use('/api', require('./api')); +router.use('/files', require('./file')); +router.use(activityPub.routes()); +router.use(webFinger.routes()); +router.use(require('./web')); -/** - * Register modules - */ -app.use('/api', require('./api')); -app.use('/files', require('./file')); -app.use(activityPub); -app.use(webFinger); -app.use(require('./web')); +// Register router +app.use(router.routes()); function createServer() { if (config.https) { |