main.js 2.0 KB

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