express - app`index.jade`没有被`exports`函数正确提供

时间:2014-09-02 10:04:21

标签: node.js express pug

我正在尝试创建一个应用,在app目录中这是我的app.js文件。在app.js我需要路由器文件夹并导出Routes。但我无法使用index.jade呈现Router,而是收到错误:

D:\Projects\socialApp\node_modules\express\lib\router\index.js:423
      throw new TypeError(msg);
            ^
TypeError: Router.use() requires callback function but got a [object Undefined]
    at D:\Projects\socialApp\node_modules\express\lib\router\index.js:423:13
    at Array.forEach (native)
    at Function.use (D:\Projects\socialApp\node_modules\express\lib\router\index
.js:419:13)
    at D:\Projects\socialApp\node_modules\express\lib\application.js:178:21
    at Array.forEach (native)
    at Function.use (D:\Projects\socialApp\node_modules\express\lib\application.
js:175:7)
    at Object.<anonymous> (D:\Projects\socialApp\app.js:22:6)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)

D:\Projects\socialApp>

这是我的app.js:

var express    = require("express"),
passport       = require("passport"),
passportLocal  = require("passport-local"),
bodyParser     = require("body-parser"),
cookieParser   = require("cookie-parser"),
expressSession = require("express-session"),
jade           = require("jade"),
mongoose       = require("mongoose"),
routes         = require('./routes'),
port           = process.env.PORT || 3000,

    app = express();

    app.set('view engine', 'jade');
    app.set('views', __dirname + '/views');
    app.use(express.static(__dirname + '/public'));


    app.use(passport.initialize());

    var routes = require('./routes/index')(passport); //i am calling here
    app.use('/', routes); // not getting index.jade on screen.


app.listen(port, function(){
    console.log('Port Listing to ' + port + ":" + __dirname);
});

这是router文件夹和index.js中的内容:

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

module.exports = function(passport){

    router.get('/', function(req,res){
        res.render('index'); //i am not getting index.jade from view folder getting error
        });
}

任何人都可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您需要在return router;功能结束时module.exports