Why Node js performance dies on implementing ssl?

Viewed 540
    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!

0 Answers
Related