Neglected Puppy Market

    quarkhttp

    1.0.0 • Public • Published

    The MIT License Coverage npm version npm downloads

    Table of Contents

    About

    This is a minimalistic Web framework for Node.js. It helps you create RESTful APIs.

    The idea is to have 0 dependencies while still have all the functionality you would expect from bigger frameworks like Express, Koa, Fastify etc with just a fraction of the footprint.

    Install

    npm install quarkhttp

    Features

    • Create routes supporting GET, POST, PUT, DELETE HTTP Verbs. There are convenience methods for this:

      app.get('<path>', (req, res) => {})
      app.post('<path>', (req, res) => {})
      app.put('<path>', (req, res) => {})
      app.delete('<path>', (req, res) => {})
    • Reads posted body to either Text or JSON. Use method bodyParse(method) to change how the body is parsed. Valid input values json or text.

    • Has middleware that you can run before handling the actual request. Can be used for Authentication for example.

      app.get('/products', (req, res, next) => {
        if (req.headers['authorization'] === 'abc123') {
          next();
        } else {
          res.statusCode = 401;
          res.send('Not allowed')
        }
      })
    • Handles route parameters and query parameters

      Router parameters

      app.get('/products/:id', (req, res) => {
        console.log(req.params) // for route /products/1 { id: "1" }
      })

      Query parameters

      app.get('/products/', (req, res) => {
        console.log(req.query) // for route /products?page=1&pageSize=20 { page: "1", pageSize: "20"}
      })

    Create an app

    const quark = require('quarkhttp');
     
    const app = quark();
     
    // ROUTE PARAMETERS
    app.get("/products/:id", (req, res) => {
      console.log("query params", req.query);
      console.log('req.params', req.params);
      res.send("product id");
    });
     
    app.get('/products', (req, res) => {
      console.log('query params', req.query)
      res.send('text');
    })
     
    // POST
    app.post('/products', (req,res) => {
      console.info('body', req.body)
      res.json(req.body);
    })
     
    // PUT
    app.put('/products', (req,res) => {
      console.info('body', req.body)
      res.json(req.body);
    })
     
    // MIDDLEWARE
    app.get('/orders', (req, res, next) => {
      if (req.headers['authorization'] === 'abc123') {
        console.log('next', next)
        next()
      } else {
        res.statusCode = 401;
        res.send('Not allowed')
      }
    }, (req, res) => {
      res.send('Protected route');
    })
     
    // Starts listening to requests
    app.listen(3000, () => {
      console.log('Server running on 3000');
    })

    Install

    npm i quarkhttp

    DownloadsWeekly Downloads

    6

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    9.9 kB

    Total Files

    7

    Last publish

    Collaborators

    • chris.noring