main.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /** Initialization Libs/Databases **/
  2. // Load Library of node
  3. const http = require('http');
  4. // Load Core & Variables
  5. global.ROOTPATH = __dirname;
  6. require('./config.js');
  7. //Init Mongo Database & start server
  8. require('mongodb').MongoClient.connect(MongoURL,function(err,db){
  9. if(err) {
  10. Logger.error('MongoDB connect error!',true);
  11. Logger.error('Server start failed. Log has been saved!');
  12. Logger.out(err);
  13. return;
  14. }
  15. global.MongoDB = db;
  16. // global.tracerDB = db.collection('usertracer');
  17. global.CountDB = db.collection('count');
  18. global.LinkDB = db.collection('link');
  19. global.UserDB = db.collection('user');
  20. //Start Services
  21. Init();
  22. });
  23. /** Init Web & API Server **/
  24. function Init(){
  25. // CountDB.update({},{$inc:{link:1}},{upsert:true});
  26. CountDB.findOne({},function(err,data){
  27. if(data && data['link']){
  28. COUNT.link = Number(data['link']);
  29. }else{
  30. COUNT.link = COUNT.LinkDefault;
  31. CountDB.update({},{$set:{link:COUNT.link}},{upsert:true});
  32. }
  33. require('http').createServer(WebServer).listen(3230);
  34. require('http').createServer(APIServer).listen(3231);
  35. Logger.info('MongoDB connected!',true);
  36. Logger.info('Web Server Start at port:['+3230+']',true);
  37. Logger.info('API Server Start at port:['+3231+']',true);
  38. Logger.log('\n------------------[Count]------------------\nLink:['+(COUNT.link-COUNT.LinkDefault)+']\tUser:['+COUNT.user+']\n-------------------------------------------',true);
  39. });
  40. }
  41. //Web Server
  42. function WebServer(req,res){
  43. var COOKIE = {};
  44. req.headers.cookie && req.headers.cookie.split(';').forEach(function( Cookie ) {
  45. var parts = Cookie.split('=');
  46. COOKIE[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim();
  47. });
  48. var requestFile = req.url=='/'?'/index':req.url;
  49. req.cookie = COOKIE;
  50. ROUTER.go(requestFile,res,req,COOKIE);
  51. }
  52. //API Server
  53. function APIServer(req,res){
  54. APIHandle.parse(req,res);
  55. }