examples/mvc/index.js JAVASCRIPT 96 lines View on github.com → Search inside
1'use strict'23/**4 * Module dependencies.5 */67var express = require('../..');8var logger = require('morgan');9var path = require('node:path');10var session = require('express-session');11var methodOverride = require('method-override');1213var app = module.exports = express();1415// set our default template engine to "ejs"16// which prevents the need for using file extensions17app.set('view engine', 'ejs');1819// set views for error and 404 pages20app.set('views', path.join(__dirname, 'views'));2122// define a custom res.message() method23// which stores messages in the session24app.response.message = function(msg){25  // reference `req.session` via the `this.req` reference26  var sess = this.req.session;27  // simply add the msg to an array for later28  sess.messages = sess.messages || [];29  sess.messages.push(msg);30  return this;31};3233// log34if (!module.parent) app.use(logger('dev'));3536// serve static files37app.use(express.static(path.join(__dirname, 'public')));3839// session support40app.use(session({41  resave: false, // don't save session if unmodified42  saveUninitialized: false, // don't create session until something stored43  secret: 'some secret here'44}));4546// parse request bodies (req.body)47app.use(express.urlencoded({ extended: true }))4849// allow overriding methods in query (?_method=put)50app.use(methodOverride('_method'));5152// expose the "messages" local variable when views are rendered53app.use(function(req, res, next){54  var msgs = req.session.messages || [];5556  // expose "messages" local variable57  res.locals.messages = msgs;5859  // expose "hasMessages"60  res.locals.hasMessages = !! msgs.length;6162  /* This is equivalent:63   res.locals({64     messages: msgs,65     hasMessages: !! msgs.length66   });67  */6869  next();70  // empty or "flush" the messages so they71  // don't build up72  req.session.messages = [];73});7475// load controllers76require('./lib/boot')(app, { verbose: !module.parent });7778app.use(function(err, req, res, next){79  // log it80  if (!module.parent) console.error(err.stack);8182  // error page83  res.status(500).render('5xx');84});8586// assume 404 since no middleware responded87app.use(function(req, res, next){88  res.status(404).render('404', { url: req.originalUrl });89});9091/* istanbul ignore next */92if (!module.parent) {93  app.listen(3000);94  console.log('Express started on port 3000');95}

Code quality findings 9

Use let or const to avoid scope issues and hoisting
info correctness var-declaration
var express = require('../..');
Use let or const to avoid scope issues and hoisting
info correctness var-declaration
var logger = require('morgan');
Use let or const to avoid scope issues and hoisting
info correctness var-declaration
var path = require('node:path');
Use let or const to avoid scope issues and hoisting
info correctness var-declaration
var session = require('express-session');
Use let or const to avoid scope issues and hoisting
info correctness var-declaration
var methodOverride = require('method-override');
Use let or const to avoid scope issues and hoisting
info correctness var-declaration
var app = module.exports = express();
Use let or const to avoid scope issues and hoisting
info correctness var-declaration
var sess = this.req.session;
Use let or const to avoid scope issues and hoisting
info correctness var-declaration
var msgs = req.session.messages || [];
Remove debugging statements or use a logging library
info correctness console-log
console.log('Express started on port 3000');

Get this view in your editor

Same data, no extra tab — call code_get_file + code_get_findings over MCP from Claude/Cursor/Copilot.