• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

expressjs / express / 4257310524

pending completion
4257310524

push

github

Douglas Christopher Wilson
build: support Node.js 19.x

741 of 786 branches covered (94.27%)

1778 of 1778 relevant lines covered (100.0%)

1340.77 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

92.86
/examples/mvc/lib/boot.js
1
'use strict'
2

3
/**
4
 * Module dependencies.
5
 */
6

7
var express = require('../../..');
1✔
8
var fs = require('fs');
1✔
9
var path = require('path');
1✔
10

11
module.exports = function(parent, options){
1✔
12
  var dir = path.join(__dirname, '..', 'controllers');
1✔
13
  var verbose = options.verbose;
1✔
14
  fs.readdirSync(dir).forEach(function(name){
1✔
15
    var file = path.join(dir, name)
4✔
16
    if (!fs.statSync(file).isDirectory()) return;
4!
17
    verbose && console.log('\n   %s:', name);
4!
18
    var obj = require(file);
4✔
19
    var name = obj.name || name;
4✔
20
    var prefix = obj.prefix || '';
4✔
21
    var app = express();
4✔
22
    var handler;
23
    var method;
24
    var url;
25

26
    // allow specifying the view engine
27
    if (obj.engine) app.set('view engine', obj.engine);
4✔
28
    app.set('views', path.join(__dirname, '..', 'controllers', name, 'views'));
4✔
29

30
    // generate routes based
31
    // on the exported methods
32
    for (var key in obj) {
4✔
33
      // "reserved" exports
34
      if (~['name', 'prefix', 'engine', 'before'].indexOf(key)) continue;
15✔
35
      // route exports
36
      switch (key) {
9!
37
        case 'show':
38
          method = 'get';
2✔
39
          url = '/' + name + '/:' + name + '_id';
2✔
40
          break;
2✔
41
        case 'list':
42
          method = 'get';
1✔
43
          url = '/' + name + 's';
1✔
44
          break;
1✔
45
        case 'edit':
46
          method = 'get';
2✔
47
          url = '/' + name + '/:' + name + '_id/edit';
2✔
48
          break;
2✔
49
        case 'update':
50
          method = 'put';
2✔
51
          url = '/' + name + '/:' + name + '_id';
2✔
52
          break;
2✔
53
        case 'create':
54
          method = 'post';
1✔
55
          url = '/' + name;
1✔
56
          break;
1✔
57
        case 'index':
58
          method = 'get';
1✔
59
          url = '/';
1✔
60
          break;
1✔
61
        default:
62
          /* istanbul ignore next */
63
          throw new Error('unrecognized route: ' + name + '.' + key);
64
      }
65

66
      // setup
67
      handler = obj[key];
9✔
68
      url = prefix + url;
9✔
69

70
      // before middleware support
71
      if (obj.before) {
9✔
72
        app[method](url, obj.before, handler);
7✔
73
        verbose && console.log('     %s %s -> before -> %s', method.toUpperCase(), url, key);
7!
74
      } else {
75
        app[method](url, handler);
2✔
76
        verbose && console.log('     %s %s -> %s', method.toUpperCase(), url, key);
2!
77
      }
78
    }
79

80
    // mount the app
81
    parent.use(app);
4✔
82
  });
83
};
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc