summaryrefslogtreecommitdiff
path: root/sandbox/server.js
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/server.js')
-rw-r--r--sandbox/server.js80
1 files changed, 80 insertions, 0 deletions
diff --git a/sandbox/server.js b/sandbox/server.js
new file mode 100644
index 0000000..7a5d9a9
--- /dev/null
+++ b/sandbox/server.js
@@ -0,0 +1,80 @@
+var fs = require('fs');
+var url = require('url');
+var path = require('path');
+var http = require('http');
+var server;
+
+function pipeFileToResponse(res, file, type) {
+ if (type) {
+ res.writeHead(200, {
+ 'Content-Type': type
+ });
+ }
+
+ fs.createReadStream(path.join(__dirname, file)).pipe(res);
+}
+
+server = http.createServer(function (req, res) {
+ req.setEncoding('utf8');
+
+ var parsed = url.parse(req.url, true);
+ var pathname = parsed.pathname;
+
+ console.log('[' + new Date() + ']', req.method, pathname);
+
+ if (pathname === '/') {
+ pathname = '/index.html';
+ }
+
+ if (pathname === '/index.html') {
+ pipeFileToResponse(res, './client.html');
+ } else if (pathname === '/axios.js') {
+ pipeFileToResponse(res, '../dist/axios.js', 'text/javascript');
+ } else if (pathname === '/axios.map') {
+ pipeFileToResponse(res, '../dist/axios.map', 'text/javascript');
+ } else if (pathname === '/api') {
+ var status;
+ var result;
+ var data = '';
+
+ req.on('data', function (chunk) {
+ data += chunk;
+ });
+
+ req.on('end', function () {
+ try {
+ status = 200;
+ result = {
+ url: req.url,
+ data: data ? JSON.parse(data) : undefined,
+ method: req.method,
+ headers: req.headers
+ };
+ } catch (e) {
+ console.error('Error:', e.message);
+ status = 400;
+ result = {
+ error: e.message
+ };
+ }
+
+ res.writeHead(status, {
+ 'Content-Type': 'application/json'
+ });
+ res.end(JSON.stringify(result));
+ });
+ } else {
+ res.writeHead(404);
+ res.end('<h1>404 Not Found</h1>');
+ }
+});
+
+const PORT = 3000;
+
+server.listen(PORT, console.log(`Listening on localhost:${PORT}...`));
+server.on('error', (error) => {
+ if (error.code === 'EADDRINUSE') {
+ console.log(`Address localhost:${PORT} in use please retry when the port is available!`);
+ server.close();
+ }
+});