Files
asciidisco.com/build/node_modules/node-rest-client/test/test-servers.js
2023-08-01 13:49:46 +02:00

82 lines
2.1 KiB
JavaScript

var http = require('http'),
fs = require('fs');
// Create an HTTP server
var httpSrv = http.createServer(function (req, res) {
console.log("req.url", req.url);
RouteManager.findRoute(req,res);
});
var RouteManager ={
"findRoute":function(req,res){
var handler = this.routes[req.url];
if (!handler) throw "cannot find route " + req.url;
handler.call(this,req,res);
},
"routes":{
"/json":function(req,res){
//this.sleep(5000);
var message = fs.readFileSync('./message.json','utf8');
res.writeHead(200, {'Content-Type': 'application/json'});
res.write(message.toString());
res.end();
},
"/xml":function(req,res){
var message = fs.readFileSync('./message.xml','utf8');
res.writeHead(200, {'Content-Type': 'application/xml'});
res.write(message.toString());
res.end();
},
"/120/json?arg1=hello&arg2=world":function(req,res){
if (!req.headers["test-header"]) throw "no test-header found!!";
res.setHeader("test-response-header",req.headers["test-header"]);
this.routes["/json"](req,res);
},
"/json?post":function(req,res){
req.on('data',function(data){
console.log("[SERVER] data = ", data);
res.writeHead(200, {'Content-Type': 'application/json'});
//res.writeHead(200, {'Content-Type': 'text/plain'});
res.write(data.toString());
res.end();
});
},
"/json/empty":function(req,res){
res.writeHead(204, {'Content-Type': 'application/json'});
res.end();
},
"/xml/empty":function(req,res){
res.writeHead(204, {'Content-Type': 'application/xml'});
res.end();
},
"/json/contenttypewithspace":function(req,res){
var message = fs.readFileSync('./message.json','utf8');
res.writeHead(200, {'Content-Type': 'application/json; charset=utf-8'});
res.write(message.toString());
res.end();
}
},
"sleep":function(ms){
var stop = new Date().getTime();
while(new Date().getTime() < stop + ms) {
;
}
}
};
httpSrv.on('error',function(err){
console.error('error starting http test server',err);
});
httpSrv.listen(4444);
console.log('http server Listening on port ' + 4444);