I created the site in sites with Express and Jade. When I load a simple login page with very little content, even when it takes a long time to load. He TTFB is too high (link to screenshot attached).
Below is my app.js code. Not sure what I'm doing wrong.
app.js
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var dbhelper = require('./routes/dbhelper.js')
var common = require('./routes/common.js')
var session = require('express-session')
var http = require('http');
var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}))
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(require('stylus').middleware(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'public')));
var mustBe = require("mustbe");
var mustBeConfig = require("./mustBeConfig");
mustBe.configure(mustBeConfig);
var routes = require('./routes/index');
var users = require('./routes/users');
var dashboard = require('./routes/dashboard');
var monitor = require('./routes/monitor');
var resetpassword = require('./routes/resetpassword');
var archive = require('./routes/archive');
var archiveList = require('./routes/archiveList');
var archiveSetup = require('./routes/archivesetup');
app.locals.moment = require('moment');
app.use(function (req, res, next) {
res.locals.session = session;
next();
});
app.use(function (req, res, next) {
req.sessionID = req.sessionID;
req.db = dbhelper.sql;
req.config = dbhelper.config;
req.ActionOutput = common.ActionOutput;
req.ActionStatus = common.ActionStatus;
req.ChangeEmployer = common.ChangeEmployer;
if ((session.Employee == null || session.Employee == undefined || session.Employee == '') && (req.url != '/' && req.url != '' && req.url != '/login'))
res.redirect('/');
else if ((session.Employee != null && session.Employee != undefined && session.Employee != '') && (req.url == '/' || req.url == '' || req.url == '/login'))
res.redirect('/dashboard');
else
next();
});
app.use('/', routes);
app.use('/users', users);
app.use('/dashboard', dashboard);
app.use('/monitor', monitor);
app.use('/resetpassword', resetpassword);
app.use('/archive', archive);
app.use('/archiveList', archiveList)
app.use('/archivesetup', archiveSetup);
process.on('uncaughtException', function (err) {
console.log('Caught exception: ${ err}');
var EID = SaveErrorLog(err.message, err.stack, 'a', err.address);
});
app.use(function (err, req, res, next) {
if (!err)
return next();
var EID = SaveErrorLog(err.message, err.stack, req.connection.remoteAddress , err.path);
var is_ajax_request = req.xhr;
var op = new common.ActionOutput();
op.ActionStatus = common.ActionStatus.Error;
op.Message = err.message;
res.send(op);
});
function SaveErrorLog(Message, CompleteError, IP, URL) {
var UserID = null;
if (session.SupportUser != null && session.SupportUser != undefined && session.SupportUser != '') {
UserID = session.SupportUser.UserID;
} else if (session.Employee != null && session.Employee != undefined && session.Employee != '') {
UserID = session.Employee.EmployeeID;
}
var ErrorLogID = 0;
var sql = dbhelper.sql;
var conn = new sql.Connection(dbhelper.config);
conn.connect().then(function () {
var request = new sql.Request(conn);
request.input('UserID', sql.BigInt, UserID);
request.input('Message', sql.VarChar(500), Message);
request.input('CompleteError', sql.VarChar(2000), CompleteError);
request.input('IP', sql.VarChar(50), IP);
request.input('URL', sql.VarChar(50), URL);
request.execute('USP_SaveErrorLog', function (err, recordset, returnValue) {
if (!err && recordset[0][0].ValidationCode == null) {
ErrorLogID = recordset[0][0].ErrorLogID;
} else {
}
return ErrorLogID;
});
});
}
app.use(function (req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
if (app.get('env') === 'development') {
app.use(function (err, req, res, next) {
res.status(err.status || 500);
res.render('shared/error', {
message: err.message,
error: err
});
});
}
app.use(function (err, req, res, next) {
res.status(err.status || 500);
res.render('shared/error', {
message: err.message,
error: {}
});
});
module.exports = app;
http.createServer(app).listen(1234, function () {
console.log('Express server listening on port ' + 1234);
});
I also deleted all the database related work from app.js, but still ran into the same problem. Any help would be noticeable.