mirror-server

Simple mirroring server usefull for testing.

Usage no npm install needed!

<script type="module">
  import mirrorServer from 'https://cdn.skypack.dev/mirror-server';
</script>

README

NPM version Dependency Status Build Status

Donate

Mirror server

Node.js server which sends back everything you send to it.

Installation

$ npm install -g mirror-server

Usage

When your server is running you can send any request to it and it will return you the same data you sent.

There are also few options which you can use to modify response from mirror-server:

  • statusCode: change status code (default is 200)
  • contentType: change content type (default is application/json)

Normally you're sending GET or POST data (object or list of parameters), but you can send also custom plain text data with response parameter.

GET

var http = require('http');

var req = http.request({
    host: 'localhost',
    port: 3000,
    method: 'GET',
    path: '/?name=David&number=5&statusCode=304&contentType=' + encodeURIComponent('text/plain')
}, function(res) {
    var data = '';
    res.setEncoding('utf8');
    res.on('data', function(chunk) {
        data += chunk;
    });
    res.on('end', function() {
        data = JSON.parse(data);
        console.log(data.name);		// output: David
        console.log(data.number);	// output: 5
    });
});

req.end();

POST

var http = require('http');
var querystring = require('querystring');

var data = querystring.stringify({
    name: 'David',
    number: 5,
    statusCode: 304,
    contentType: 'text/plain'
});

var req = http.request({
    host: 'localhost',
    port: 3000,
    method: 'GET',
    path: '/'
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': data.length
    }
}, function(res) {
    var data = '';
    res.setEncoding('utf8');
    res.on('data', function(chunk) {
        data += chunk;
    });
    res.on('end', function() {
        data = JSON.parse(data);
        console.log(data.name);		// output: David
        console.log(data.number);	// output: 5
    });
});

req.write(data);
req.end();

Sending files

Information about sent files is stored in response HTTP header X-Mirror-Files.

console.log(JSON.parse(response.headers['x-mirror-files']));

[
    {
        name: 'name of POST field',
        filename: 'actual filename'
    }
]

Running server

CLI

$ mirror-server --port 3000 

node.js

var Server = require('mirror-server');
var server = new Server(3000);		// port

server.connect(function() {
    console.log('success');
});

setTimeout(function() {		// wait a while before disconnecting from server
    server.disconnect();
}, 1000);