var express = require('express');
var path = require('path');
var logger = require('morgan');
var bodyParser = require('body-parser');
var fs = require('fs');
var app = express();
var os = require('os');
var http = require('http');
var https = require('https');
var tls = require('tls');
const fileUpload = require('express-fileupload');
// const formidable = require('express-formidable');
//app.use(logger('dev'));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));
// default options
app.use(fileUpload());
// .use(formidable({
// encoding: 'utf-8',
// uploadDir: '/userimage',
// multiples: true, // req.files to be arrays of files
// }));
// app.use(bodyParser.urlencoded());
// .use(bodyParser.urlencoded()); // To process multipart data seperatly
app.all('/*', function (req, res, next) {
// CORS headers
res.header("Access-Control-Allow-Origin", "*"); // restrict it to the required domain
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
// Set custom headers for CORS
res.header('Access-Control-Allow-Headers', 'Content-type,Accept,X-Access-Token,X-Key');
if (req.method == 'OPTIONS') {
res.status(200).end();
} else {
next();
}
});
app.use('/', require('./routes'));
app.use(function (err, req, res, next) {
if (!err) {
return next();
}
else {
var date = new Date();
var str = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
str = str + "--------" + err + os.EOL;
fs.appendFile('./Error/error.txt', str, function (err1) {
return next();
});
}
});
// If no route is matched by now, it must be a 404
app.use(function (req, res, next) {
var err = new Error('URL Not Found');
err.status = 404;
var date = new Date();
var str = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
str = str + "--------" + err + os.EOL;
fs.appendFile('./Error/error.txt', str, function (err1) {
return next();
})
//fs.writeFile('./Error/error.txt', str, function (err1) {
// return next();
// });
next(err);
});
// Start the server
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function () {
console.log('Express server listening on port ' + server.address().port);
});
Since I implement SSL, my node api becomes too much slower. I saw the question Node + SSL = SLOW asked previosuly but this question for the socket only. So for the socket project, I just removed ssl imlementation but I want ssl implemenation in node apis so there any way to boost up api using SSL as it takes too much time.
Thanks in advance!