使用节点,护照和& connect-flash ....为什么我的flash方法未定义?

时间:2015-05-26 03:48:54

标签: node.js flash express passport.js

好先生。 在遵循MEAN教程时,当我尝试undefined is not a function (第二个代码块的中间)时,我收到req.flash('error')错误

所以...我的控制器中缺少require,这会给我express.js中明确设置的闪光功能吗?

我没有看到控制器中任何地方引用app,所以我不确定控制器应该如何知道flash是什么。我理解exportsrequire如何将文件链接在一起,但这似乎并不适用于此,教程中没有任何解释。

express.js

 var flash = require('connect-flash');
    app.use(flash());

users.server.controller.js

var User = require('mongoose').model('User'),
    passport = require('passport');
...
exports.renderRegister = function(req, res, next) {
    if (!req.user) {
        res.render('register', {
            title: 'Register Form',
            messages: req.flash('error')

        });
    }
    else {
        return res.redirect('/');
    }
};
...

package.json 显示我需要安装的所有内容

{
  "name": "myMEANapplication",
  "version": "1.0.0",
  "dependencies": {
    "body-parser": "^1.12.4",
    "connect-flash": "^0.1.1",
    "ejs": "^2.3.1",
    "express": "^4.12.4",
    "express-session": "^1.11.2",
    "gulp": "latest",
    "mongoose": "^4.0.3",
    "passport": "^0.2.2",
    "passport-local": "^1.0.0"
  }
}

已完成的教程项目页面的回购是here

1 个答案:

答案 0 :(得分:-1)

你放了你的

O(1)

之前或之后的

require('../app/routes/index.server.routes.js')(app);
require('../app/routes/users.server.routes.js')(app);