UNPKG

kpiplus

Version:

KPI+

1 lines 3.54 kB
var express=require("express"),bodyParser=require("body-parser"),session=require("express-session"),passport=require("passport"),underscore=require("underscore"),https=require("https"),http=require("http"),fs=require("fs");global.mongoose=require("mongoose"),global.Schema=mongoose.Schema,global.ctrlVouchers={},global.postingVouchers={},global.cacheDatas={};var configs=require("./configs");global.port=9999,global.GCM_API_KEY="AIzaSyDhOzWmkfOVKRR9wCijzyyCJeBTdJllReY";var moment=require("moment-timezone");moment.tz.setDefault(configs.timezone||"Asia/Ho_Chi_Minh");var connect=mongoose.connect(configs.database.url),redis=require("redis");global.clientRedis=redis.createClient(),clientRedis.on("connect",function(){console.log("redis connected")});var Mailmanagement=require("./libs/mailmanagement");global.mailmanagement=new Mailmanagement;var Agenda=require("agenda");global.agenda=new Agenda({db:{address:configs.database.url}});var schedule=require("./libs/schedule");schedule.define(),agenda.on("ready",function(){});const EventEmitter=require("events");class GlobalEmitter extends EventEmitter{}global.globalEvents=new GlobalEmitter;var Menu=require("./menu"),modulesVisible=Menu.getModules();global.modulesInMenu={},underscore.values(modulesVisible).forEach(function(e){global.modulesInMenu[e.name]=e});var app=express();app.use(session({secret:"098STP123456",resave:!1,saveUninitialized:!0}));var compress=require("compression");app.use(compress());var multer=require("multer")({dest:"./uploads"});app.use(multer),app.options("/*",function(e,r){r.header("Access-Control-Allow-Origin",e.headers.origin||"*"),r.header("Access-Control-Allow-Methods","GET,POST,PUT,HEAD,DELETE,OPTIONS"),r.header("Access-Control-Allow-Headers","content-Type,x-requested-with,X-Access-Token,Authorization"),r.sendStatus(200)}),app.use(function(e,r,s){r.header("Access-Control-Allow-Origin",e.headers.origin||"*"),r.header("Access-Control-Allow-Methods","GET,POST,PUT,HEAD,DELETE,OPTIONS"),r.header("Access-Control-Allow-Headers","content-Type,x-requested-with,X-Access-Token,Authorization"),s()});var path=require("path");app.use(bodyParser.urlencoded({extended:!0})),app.use(bodyParser.json()),app.use(passport.initialize());var morgan=require("morgan"),rfs=require("rotating-file-stream"),logDirectory=path.join(__dirname,"log");fs.existsSync(logDirectory)||fs.mkdirSync(logDirectory);var server,accessLogStream=rfs("access-cluster.log",{interval:"1d",path:logDirectory});if(app.use(morgan("combined",{stream:accessLogStream,skip:function(e,r){return r.statusCode<400}})),configs.use_ssl){var privateKey=fs.readFileSync("./ssl/key.pem"),certificate=fs.readFileSync("./ssl/cert.crt");server=https.createServer({key:privateKey,cert:certificate},app)}else server=http.createServer(app);var getNotifies=require("./libs/getNotifies"),Message=require("./models/message");global.socketIO=require("socket.io")(server),global.clientIO={},global.wsClients={};var User=require("./models/user"),async=require("async");global.alertMessage=function(e){Message.find({email_owner:e,email_receiver:e,read:!1},{_id:1},function(r,s){r?console.log(r):User.emitEvent(e,"message:count",s.length,!1)})};var route=require("./route");route(app);var cluster=require("cluster"),numCPUs=require("os").cpus().length;if(cluster.isMaster){for(var i=0;i<numCPUs;i++)cluster.fork();cluster.on("exit",function(e,r,s){console.log("worker "+e.process.pid+" died",r,"restarting...");e=cluster.fork()})}else server.listen(port,function(){console.log("server start at "+port+" port")});