const express = require('express'); const https = require('https'); const http = require('http'); const fs = require('fs'); const chokidar = require('chokidar'); const watcher = chokidar.watch('./app'); const privateKey = fs.readFileSync('certificates/private.key').toString(); const certificate = fs.readFileSync('certificates/public.pem').toString(); const production = process.env.NODE_ENV === 'production'; // This line is from the Node.js HTTPS documentation. const options = { key: privateKey, cert: certificate }; // Create a service (the app object is just a callback). const app = express(); // File watcher for development reload if (!production) { watcher.on('ready', function () { watcher.on('all', function () { console.log("Clearing /dist/ module cache from server"); Object.keys(require.cache).forEach(function (id) { if (/[\/\\]app[\/\\]/.test(id)) delete require.cache[id]; }); }); }); } app.use(express.static(require('path').join(__dirname, 'src'))); app.use(function (req, res, next) { res.sendFile(require('path').join(__dirname, 'index.html')); //require('./index')(req, res, next); }); //Create http server and redirect to https. http.createServer(function (req, res) { res.writeHead(301, { "Location": "https://" + req.headers.host + req.url }); res.end(); }).listen(80); // Create an HTTPS service identical to the HTTP service. https.createServer(options, app).listen(443); // routes app.get('/hey', function (req, res) { sendToClient("HO!", res, 200, "text/plain"); }); function getHeader(type) { return { "Content-Type": type }; } function sendToClient(data, res, code, type) { res.writeHead(code, getHeader(type)); (type === "text/html" || type === "text") ? res.end(data, "utf-8"): res.end(data); } const convict = require('convict'); const config = convict({ db: { name: { format: String, default: '' }, synchro: { active: { format: 'Boolean', default: false }, remote_url: { format: 'url', default: 'http://localhost:8080/' } } }, secret: { doc: 'Secret used for session cookies and CSRF tokens', format: '*', default: '', sensitive: true } }); //config.loadFile("shared/const.json"); const schema = config.getSchemaString(); require('fs').writeFileSync('shared/const.json', config.toString());