Noiseless Peaceful Morning

    express-fs-router

    0.3.1 • Public • Published

    Express FileSystem Router

    Straightforward filesystem routing utility for Express. Inspiration drawn from micro

    Getting Started

    Install

    yarn add express-fs-router

    Create sample endpoint

    // api/index.js
    export default function(req, res) {
      res.json({ message: 'hello world!' })
    }

    Add to Express application

    // app.js
    import express from 'express'
    import FSRouter from 'express-fs-router'
    const app = express()
     
    app.use('/api', new FSRouter('api'))
     
    app.listen(3000, () => console.log('Listening at http://localhost:3000'))

    Features

    HTTP Methods & Named Function Default Exports

    To specify a supported method on a route add a named function default export:

    // api/get.js
    // sample GET route
    export default function get(req, res) {
      res.json({ message: 'hello world' })
    }
    // api/post.js
    // sample POST route
    export default function post(req, res) {
      res.json({ message: 'hello world' })
    }

    By default anonymous functions or named functions that are not one of the supported request methods are assumed to support ALL methods. In short, said functions are added to the Express router as:

    router.all(route, handler)

    Middleware

    To apply middleware to the route's handler, export an array of functions in the order of execution:

    // api/middleware.js
    function myMiddleware(req, res, next) {
      console.log('LOGGED FROM MYMIDDLEWARE')
      next()
    }
     
    function get(req, res) {
      res.json({ message: 'yay middleware!' })
    }
     
    export default [myMiddleware, get]

    Methods Routing

    This package allows defining multiple supported HTTP methods per route with file-system methods routing:

    |- api/
      |- methods/
        |- :get.js
        |- :post.js

    Specifying Globally Supported Request Methods

    FSRouter accepts an options argument:

    new FSRouter('api', { methods: ['POST'] })

    By specifying only the POST method, all anonymous functions will assume the supported method as POST. However, specifying ALL in the option.methods will trump all other supplied methods and assign to the router as router.all(route, handler).

    Keywords

    none

    Install

    npm i express-fs-router

    DownloadsWeekly Downloads

    15

    Version

    0.3.1

    License

    MIT

    Unpacked Size

    194 kB

    Total Files

    12

    Last publish

    Collaborators

    • garlicbred