mirror of
https://github.com/tenrok/axios.git
synced 2026-06-20 20:00:40 +03:00
Adding support for node
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
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>');
|
||||
}
|
||||
});
|
||||
|
||||
server.listen(3000);
|
||||
Reference in New Issue
Block a user