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
Post a Comment