155 lines
3.6 KiB
JavaScript
155 lines
3.6 KiB
JavaScript
require('./config/config');
|
|
|
|
const _ = require('lodash');
|
|
const cors = require('cors');
|
|
|
|
var fs = require('fs');
|
|
|
|
const port = process.env.PORT;
|
|
|
|
const express = require('express');
|
|
const bodyParser = require('body-parser');
|
|
const path = require('path');
|
|
|
|
i18n = require("i18n");
|
|
|
|
if (process.env.NODE_ENV === 'production') {
|
|
var privateKey = fs.readFileSync(process.env.PATH_CERT_KEY, 'utf8');
|
|
var certificate = fs.readFileSync(process.env.PATH_SERVER_CRT, 'utf8');
|
|
var credentials = { key: privateKey, cert: certificate };
|
|
var https = require('https');
|
|
} else {
|
|
var http = require('http');
|
|
}
|
|
|
|
require('./models/todo');
|
|
require('./models/user');
|
|
require('./models/subscribers');
|
|
|
|
const { ObjectID } = require('mongodb');
|
|
|
|
|
|
const index_router = require('./router/index_router');
|
|
const push_router = require('./router/push_router');
|
|
const subscribe_router = require('./router/subscribe_router');
|
|
const email_router = require('./router/email_router');
|
|
const todos_router = require('./router/todos_router');
|
|
const users_router = require('./router/users_router');
|
|
|
|
require('./db/mongoose');
|
|
|
|
console.log("DB: " + process.env.DATABASE);
|
|
console.log("PORT: " + port);
|
|
console.log("MONGODB_URI: " + process.env.MONGODB_URI);
|
|
|
|
var sendemail = require('./sendemail');
|
|
var reg = require('./reg/registration');
|
|
var tools = require('./tools/general');
|
|
var server_constants = require('./tools/server_constants');
|
|
|
|
var app = express();
|
|
|
|
// app.use(express.static(path.join(__dirname, 'client')));
|
|
|
|
app.use(bodyParser.json());
|
|
|
|
// app.set('view engine', 'pug');
|
|
|
|
// Set static folder
|
|
// app.use(express.static(path.join(__dirname, 'public')));
|
|
|
|
|
|
i18n.configure({
|
|
locales: ['it', 'en'],
|
|
directory: __dirname + '/locales'
|
|
});
|
|
|
|
app.use(cors({
|
|
exposedHeaders: ['x-auth'],
|
|
}));
|
|
|
|
app.use(bodyParser.json());
|
|
|
|
app.use(i18n.init);
|
|
|
|
const webpush = require('web-push');
|
|
|
|
const publicVapidKey = process.env.PUBLIC_VAPI_KEY;
|
|
const privateVapidKey = process.env.PRIVATE_VAPI_KEY;
|
|
|
|
webpush.setVapidDetails('mailto:' + process.env.EMAIL_FROM, publicVapidKey, privateVapidKey);
|
|
|
|
|
|
// Use Routes
|
|
|
|
app.use('/', index_router);
|
|
app.use('/subscribe', subscribe_router);
|
|
app.use('/push', push_router);
|
|
app.use('/email', email_router);
|
|
app.use('/todos', todos_router);
|
|
app.use('/users', users_router);
|
|
|
|
|
|
// catch 404 and forward to error handler
|
|
app.use(function (req, res, next) {
|
|
var err = new Error('Not Found');
|
|
err.status = 404;
|
|
next(err);
|
|
});
|
|
|
|
|
|
// app.set('views', path.join(__dirname, 'views'));
|
|
// app.set('view engine', 'pug');
|
|
|
|
// development error handler
|
|
// will print stacktrace
|
|
if (app.get('env') === 'development') {
|
|
app.use(function (err, req, res, next) {
|
|
console.log('Error: ', err.message)
|
|
// console.trace();
|
|
res.status(err.status || 500).send({error: err.message});
|
|
// res.render('error', {
|
|
// message: err.message,
|
|
// error: err
|
|
// });
|
|
});
|
|
}
|
|
|
|
|
|
function getlang(res) {
|
|
return res.locale;
|
|
}
|
|
|
|
|
|
|
|
if (process.env.NODE_ENV === 'production') {
|
|
var httpsServer = https.createServer(credentials, app);
|
|
console.log("httpsServer: port ", port);
|
|
httpsServer.listen(port);
|
|
} else {
|
|
console.log("httpServer: port ", port);
|
|
var httpServer = http.createServer(app);
|
|
httpServer.listen(port);
|
|
}
|
|
|
|
//app.listen(port, () => {
|
|
// console.log(`Server started at port ${port}`);
|
|
//});
|
|
|
|
|
|
module.exports = { app };
|
|
|
|
if (process.env.TEST_ATTIVO) {
|
|
eseguitest();
|
|
}
|
|
|
|
function eseguitest() {
|
|
|
|
if (false) {
|
|
console.log("ESEGUI I TEST:");
|
|
console.log("linkreg = " + sendemail.getlinkReg(1, "myusername"));
|
|
}
|
|
|
|
// sendemail.sendEmail_Registration("en", "paolo.arena77@gmail.com", "paoloar77", 1, "http://provalink.com");
|
|
}
|