javascript - Express route functions not hoisted -


could please explain me why express routes not hoisted? i'm seeing following error thrown:

throw new typeerror('router.use() requires middleware functions'); 

the following file does not produce error:

var express        = require('express'),     router         = express.router()  var loadwidget = function (req, res, next) {      req.widget = { text: 'widget' };      return next(); };  var sendwidget = function (req, res, next) {      return res.status(200).send(req.widget); };  router.use(loadwidget);  router.get('/', sendwidget);  module.exports = router; 

however, changing order of methods, in file below, does throw error:

var express        = require('express'),     router         = express.router()  router.use(loadwidget);  router.get('/', sendwidget);  var loadwidget = function (req, res, next) {      req.widget = { text: 'widget' };      return next(); };  var sendwidget = function (req, res, next) {      return res.status(200).send(req.widget); };  module.exports = router; 

i have file operations @ head of file (use, get, post, etc.) actual bodies of functions below.

on side note, error thrown when first invoke app. sending rs nodemon not throw error:

causes error:

node_app='app01' nodemon ./server/server 

no error:

rs 

function declarations hoisted in javascript function expressions not. function expression is:

var fn = function() {}; 

and function declration:

function fn() {}; 

Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -