コード例 #1
0
export default function ConfigureRouter(paths) {
  let router = new Routes();

  for (let pk in paths) {
    if (!paths.hasOwnProperty(pk)) continue;

    let path = paths[pk];
    let route = correctPath(pk);

    for (let mk in path) {
      if (!path.hasOwnProperty(mk)) continue;

      let method = path[mk];

      if (process.env.debug) {
        console.log('ADDING ROUTE: ', mk.toUpperCase() + ' ' + pk);
      }

      let respond = generateResponse(method.responses, pk);
      router.addRoute('/' + mk + route, respond);
    }
  }

  return router;
}
コード例 #2
0
ファイル: shell.js プロジェクト: biozork/API-tools
	launchServer: function(siteID,body){

		//router.addRoute('/emediate/EAS_fif.html', t.EAS_fif); 	//emulate eas file, so banners works
		router.addRoute('/shell/:site/:lang/:banner', t.checkShell);	//accept shortcode and country +
		router.addRoute('/*', t.welcome);						//all other urls display default list

		var port = process.env.PORT || 3500;
		var ip = process.env.HOST || 'localhost'; //Change to specific IP if you need to test on mobile devices

		http.createServer(function (req, res) {
			var path = url.parse(req.url).pathname;
			var match = router.match(path);
			match.fn(req, res, match);
		}).listen(port);
		console.log(`Server running on http://${ip}:${port}/`);

		//open('http://' + ip + ':' + port + '/');
	},
コード例 #3
0
ファイル: http_input.js プロジェクト: SLPhant/phant
/**** Initialize a new PhantInput ****/
function PhantInput(config) {

  // create a responder
  var responder = function(req, res) {

    if (!req.url.match(/^\/input\//)) {
      return;
    }

    if (res.headersSent) {
      return;
    }

    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET,POST,DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, Phant-Private-Key');

    var match = router.match(url.parse(req.url).pathname);

    if (!match) {
      return;
    }

    match.fn(req, res, match);

    return responder;

  };

  util._extend(responder, events.EventEmitter.prototype);
  util._extend(responder, app);
  util._extend(responder, config || {});

  router.addRoute('/input/:publicKey/clear.:ext', responder.route.bind(responder, 'clear'));
  router.addRoute('/input/:publicKey/clear', responder.route.bind(responder, 'clear'));
  router.addRoute('/input/:publicKey.:ext', responder.route.bind(responder, 'log'));
  router.addRoute('/input/:publicKey', responder.route.bind(responder, 'log'));

  return responder;

}
コード例 #4
0
ファイル: index.js プロジェクト: briandemant/controlport-perf
module.exports = function (config) {
  config = config || {};
  var prefix = config.prefix || "perf-";

  var router = new Routes();
  var analyzer = new Analyzer(config);

  router.addRoute('/' + prefix + 'profile', function (req, res) {
    if (req.method === "GET") {
      var result = analyzer.getProfile();


      if (!result)
        sendJSON(req, res, {
          body: {error: "no profile yet"},
          statusCode: 404
        });

      else sendJSON(req, res, result);
    }

    else if (req.method === "POST") {
      jsonBodyHack(req, function (err, data) {
        if (err) return console.error(util.inspect(err));

        var result = analyzer.startProfiling(data.time);

        if (result && result.type === Analyzer.ProfilingStartedError.type)
          return sendJSON(res, {
            body: {error: "profiling already started"},
            statusCode: 406
          });

        return sendJSON(req, res, {message: "started profiling"});
      });
    }

    else return sendJSON(req, res, {statusCode: 405});
  });

  router.addRoute('/' + prefix + 'heap', function (req, res, next) {
    if (req.method === "GET") {
      var path = analyzer.heapDump();

      sendJSON(req, res, {path: path});
    }

    else return sendJSON(req, res, {statusCode: 405});
  });

  function handler (req, res, opts, next) {
    var route = router.match(req.url);

    if (!route) next(NotFoundError());
    else route.fn.call(null, req, res);
  }

  var server = http.createServer(function (req, res) {
    handler(req, res, {}, function (err) {
      if (err && err.type === NotFoundError.type)
        sendJSON(req, res, {body: {error: "not found"}, statusCode: 404});
      else if (err)
        sendJSON(req, res, {body: {error: "unknown error"}, statusCode: 500});
    });
  });

  server.router = router;
  server.handler = handler;

  return server;
};