快递路线功能未悬挂

时间:2016-02-06 16:31:37

标签: javascript node.js express nodemon

有人可以向我解释为什么我的快递路线没有悬挂?我经常看到抛出以下错误:

throw new TypeError('Router.use() requires middleware functions');

以下文件不会产生错误:

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;

但是,如下文所示,更改方法的顺序抛出错误:

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;

我希望我的文件包含文件头部(usegetpost等)的操作,以及下面函数的实际主体。

另外,在我第一次调用应用程序时会抛出错误。使用nodemon发送rs不会抛出错误:

导致错误:

NODE_APP='app01' nodemon ./server/server

没有错误:

rs

1 个答案:

答案 0 :(得分:1)

函数声明在javascript中提升但函数表达式不是。函数表达式为:

var fn = function() {};

功能解除:

function fn() {};