Skip to main content

ExpressJS devnull

This is a simple NodeJS script that will give you a GET and POST endpoint to push data to for testing.

 

npm init -y
npm install express body-parser
touch server.js

 

// FILE: server.js
const util = require('util');

const express = require('express');
const bodyParser = require('body-parser')

const app = express();
const port = 3001;

app.set('trust proxy', true);

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded());

// parse application/json
app.use(bodyParser.json());

function logTimestamp() {
  const timestamp = new Date(Date.now());
  return util.format('%s', timestamp.toISOString());
}

app.get('/', (req, res) => {
  console.log(util.format('[%s] %s: %s', logTimestamp(), req.ip, req.url));
  console.log(util.format('   query: %j', req.query));
  console.log(util.format('   params: %j', req.params));
  res.status(200).json({ message: 'OK' });
});

app.post('/', (req, res) => {
  console.log(util.format('[%s] %s: %s: Received data: %s', logTimestamp(), req.ip, req.url, JSON.stringify(req.body)));
  console.log(req.body);
  res.status(200).json({ message: 'OK' });
});

app.listen(port, () => {
  console.log(`Express server listening on port ${port}`);
});

 

# Exerpt from file: /etc/nginx/sites-enabled/default

        location = /devnull {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_set_header X-NginX-Proxy true;

                proxy_pass http://127.0.0.1:3001/;
                proxy_redirect off;
        }

-end