Router.use()需要中间件函数但是有一个Object

时间:2015-11-11 21:19:20

标签: javascript node.js

我正在尝试使用Express 4的新路由器,并想知道如何在下面进行操作......

我在路径文件夹下创建了一个名为 app.js 的文件,基本上包含这个:

if (nutrientNeeds.getNutrientNeed(key).getMax() != Double.POSITIVE_INFINITY) {
     if ((sumOfNutrientI.get(key) > 
         ...
     } 
}

在我的 server.js 文件中,这可以正常工作......

var express = require('express');
var router = express.Router();

module.exports = (function() {

    router.get('/testindex', function(req, res) {
        res.render('testindex');
    })

    return router;

})();

我希望能做到这样的事情,但我得到了标题中提到的错误......

var appRouter = require('./routes/app');
var apiRouter = require('./routes/api/v1.js');
app.use('/', appRouter);
app.use('/api/v1',apiRouter);

我不理解什么?

1 个答案:

答案 0 :(得分:0)

尝试重现您的问题时,删除此声明时没有问题:

app.use('/api/v2', router.api.v2);

所以,你定义v2属性的方式可能有问题(你在问题中没有充实)。