/** Initialization Libs/Databases **/ // Load Library of node const http = require('http'); // Load Core & Variables global.ROOTPATH = __dirname; require('./config.js'); require('./database.js'); //Init Mongo Database & start server require('mongodb').MongoClient.connect(MongoURL,function(err,db){ if(err) { Logger.error('MongoDB connect error!',true); Logger.error('Server start failed. Log has been saved!'); Logger.out(err); return; } global.MongoDB = db; // global.tracerDB = db.collection('usertracer'); global.CountDB = db.collection('count'); global.LinkDB = db.collection('link'); global.UserDB = db.collection('user'); //Start Services Init(); }); /** Init Web & API Server **/ function Init(){ // CountDB.update({},{$inc:{link:1}},{upsert:true}); CountDB.findOne({},function(err,data){ if(data && data['link']){ COUNT.link = Number(data['link']); }else{ COUNT.link = COUNT.LinkDefault; CountDB.update({},{$set:{link:COUNT.link}},{upsert:true}); } require('http').createServer(WebServer).listen(3230); require('http').createServer(APIServer).listen(3231); Logger.info('MongoDB connected!',true); Logger.info('Web Server Start at port:['+3230+']',true); Logger.info('API Server Start at port:['+3231+']',true); Logger.log('\n------------------[Count]------------------\nLink:['+(COUNT.link-COUNT.LinkDefault)+']\tUser:['+COUNT.user+']\n-------------------------------------------',true); }); } //Web Server function WebServer(req,res){ var COOKIE = {}; req.headers.cookie && req.headers.cookie.split(';').forEach(function( Cookie ) { var parts = Cookie.split('='); COOKIE[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim(); }); var requestFile = req.url=='/'?'/index':req.url; req.cookie = COOKIE; ROUTER.go(requestFile,res,req,COOKIE); } //API Server function APIServer(req,res){ APIHandle.parse(req,res); }