49 lines
No EOL
1.5 KiB
JavaScript
49 lines
No EOL
1.5 KiB
JavaScript
const express = require('express');
|
|
const morgan = require('morgan');
|
|
const routes = require('./routes')
|
|
const telemetryRoute = require('./routes/post');
|
|
const titleCodeMiddleware = require('./middleware/title-code');
|
|
const rawBodyMiddleware = require('./middleware/raw-body');
|
|
const validateBOSSDigestMiddleware = require('./middleware/validate-boss-digest');
|
|
const copyRequestStreamMiddleware = require('./middleware/copy-request-stream');
|
|
const validateMultipartMiddleware = require('./middleware/validate-multipart');
|
|
const database = require('./database');
|
|
|
|
const app = express();
|
|
app.set('trust proxy', true);
|
|
const port = process.env.JUDD_PORT || 4000;
|
|
|
|
app.use(morgan('dev'));
|
|
app.use(titleCodeMiddleware);
|
|
app.use(rawBodyMiddleware);
|
|
app.use(validateBOSSDigestMiddleware);
|
|
app.use(copyRequestStreamMiddleware);
|
|
app.use(validateMultipartMiddleware);
|
|
app.use(telemetryRoute);
|
|
|
|
app.use((request, response) => {
|
|
const protocol = request.protocol;
|
|
const hostname = request.hostname;
|
|
const opath = request.originalUrl;
|
|
|
|
const fullUri = `${protocol}://${hostname}${opath}`;
|
|
|
|
console.warn(`HTTP 404 at ${fullUri}`);
|
|
|
|
response.sendStatus(404);
|
|
});
|
|
|
|
app.use((error, request, response, next) => {
|
|
console.log(error);
|
|
return response.status(500).send('error');
|
|
});
|
|
|
|
async function main() {
|
|
await database.connect();
|
|
|
|
app.listen(port, () => {
|
|
console.log(`Server listening on http://localhost:${port}`);
|
|
});
|
|
}
|
|
|
|
main().catch(console.error); |