Skip to content

notunderctrl/express-router-handler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Express Router Handler

An Express js routes handler that will automatically generate API routes for you based on the folder structure.

Folder structure example (as nested as you want it!):

RouterHandler options:

app - your express server instance.

routesPath - the path to your routes folder - Use the path library to define this.

prefix - this changes your API routing. For example: By default your requests could look something like this:

  • http:https://localhost:3000/users

Adding a prefix like /api will change the routing to look like this:

  • http:https://localhost:3000/api/users

IMPORTANT: Adding a trailing slash to prefix will affect your routing.

CommonJS Example:

const path = require('path');
const express = require('express');
const RouterHandler = require('express-router-handler').default;

const app = express();
const PORT = 3000;

RouterHandler({
  app,
  // IMPORTANT: Use the path library to define routesPath
  routesPath: path.join(__dirname, 'routes'),
  // prefix: '/api', // optional
});

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

Typescript Example:

import express, { Application } from 'express';
import RouterHandler from 'express-router-handler';
import path from 'path';

const app: Application = express();
const PORT = 3000;

RouterHandler({
  app,
  // IMPORTANT: Use the path library to define routesPath
  routesPath: path.join(__dirname, 'routes'),
  // prefix: '/api', // optional
});

app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

Your route file needs to export a function

CommonJS example:

/routes/users/:id/get.js

module.exports = (req, res) => {
  const id = req.params.id;
  res.send(`User id: ${id}`);
};

TypeScript example:

/routes/users/:id/get.js

import { Request, Response } from 'express';

export default (req: Request, res: Response) => {
  const id = req.params.id;
  res.send(`User id: ${id}`);
};

Known issues

  • The library only works in CommonJS projects due to the nature of import/exports.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages