swagger-node-codegen
Version:
An OpenAPI 3.x/Swagger 2 code generator for Node.js
41 lines (33 loc) • 1.1 kB
JavaScript
const express = require('express');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const config = require('../lib/config');
const logger = require('../lib/logger');
const log = logger(config.logger);
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
/*
* Routes
*/
{{#each .swagger.endpoints}}
{{#endsWith .swagger.basePath '/'}}
app.use('{{@root.swagger.basePath}}{{..}}', require('./routes/{{..}}'));
{{else}}
app.use('{{@root.swagger.basePath}}/{{..}}', require('./routes/{{..}}'));
{{/endsWith}}
{{/each}}
// catch 404
app.use((req, res, next) => {
log.error(`Error 404 on ${req.url}.`);
res.status(404).send({ status: 404, error: 'Not found' });
});
// catch errors
app.use((err, req, res, next) => {
const status = err.status || 500;
const msg = err.error || err.message;
log.error(`Error ${status} (${msg}) on ${req.method} ${req.url} with payload ${req.body}.`);
res.status(status).send({ status, error: msg });
});
module.exports = app;