jdm-react-router-cli
Version:
A CLI tool to generate Express.js routers, models, middleware, and controllers
57 lines (49 loc) • 1.73 kB
JavaScript
module.exports = ({ config = {}, author = "JDM" }) => {
const { models = "models" } = config;
return `
// Author: ${author}
// Created on: ${new Date().toISOString()}
const express = require("express");
const cors = require("cors");
const serverless = require("serverless-http");
const path = require("path");
const { sequelize } = require("../${models}/models.js");
const bodyParser = require("body-parser");
const app = express();
const router = express.Router();
// -------------------------------------------------------------------------------
// CORS CONFIGURATION
// -------------------------------------------------------------------------------
const DEVELOPMENT = false;
if (DEVELOPMENT) {
app.use(
cors({
origin: "",
credentials: true,
optionSuccessStatus: 200,
})
);
} else {
app.use(cors());
}
// -------------------------------------------------------------------------------
// ALL ROUTES
// -------------------------------------------------------------------------------
router.get("/test", async (req, res) => {
res.status(200).json("This is a test endpoint.");
});
router.get("/reset", async (req, res) => {
await sequelize.sync({ force: true });
res.send("Database reset successful.");
});
// -------------------------------------------------------------------------------
// APP MIDDLEWARE
// -------------------------------------------------------------------------------
app.use(bodyParser.json());
app.use(express.json());
app.use(express.static(path.join(__dirname, "../client/build")));
// Set base path for serverless functions
app.use("/.netlify/functions/api", router);
module.exports.handler = serverless(app);
`;
};