const express = require('express');
var app = express();
const path = require('path');
const http = require('http');
const mongoose = require('mongoose');
const morgan = require('morgan')
const mongoURI = process.env.DATABASE_URL;
const Spawner = require('child_process')

mongoose.connect(mongoURI);
mongoose.connection.on('connected', ()=>{console.log('MongoDB - Connected')})
        .on('disconnected', ()=>{console.log('MongoDB - Disconnect')})
        .on('error', (error)=>console.log('Mongoose Error:', error));
app.use(express.static(path.join(__dirname, "public")));
app.use(morgan('dev'))
app.set("view engine", "ejs");
app.use(require('cors')())
app.use(express.json());
app.use(express.urlencoded({extended:true}));
const server = http.createServer(app);
server.listen(process.env.PORT, async () => 
{
    const worker = Spawner.fork('./downloader.js', [mongoURI]);
    app.use('/', require('./routes/routes')(worker));
    console.log(`Http - Server UP`);
});