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