【发布时间】:2016-04-29 11:22:24
【问题描述】:
我已设法将 Route.js 分解为多个控制器,但我不知道为什么我不能使用附加功能来阻止查看页面的权限。
// route.js
module.exports = function(app, passport) {
app.use('/profile', require('./controllers/profileController'));
}
.
// profileController.js
var express = require('express')
, router = express.Router()
, permissions = require('../utils/permissions.js')
// =====================================
// /profile
// =====================================
router.get('/', function(req, res) {
res.render('Profile/index.ejs', {});
}
module.exports = router;
为什么我不能在 profileController 中执行此操作?
router.get('/', permissions.isLoggedIn, function(req, res) {
res.render('Profile/index.ejs', {});
}
它抛出错误:
Error: Route.get() requires callback functions but got a [object Undefined]
at /home/ubuntu/workspace/node_modules/express/lib/router/route.js:171:15
at Array.forEach (native)
at Route.(anonymous function) [as get] (/home/ubuntu/workspace/node_modules/express/lib/router/route.js:167:15)
at Function.proto.(anonymous function) [as get] (/home/ubuntu/workspace/node_modules/express/lib/router/index.js:380:19)
at Object.<anonymous> (/home/ubuntu/workspace/app/controllers/profileController.js:10:10)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
附加信息:
// permissions.js
var helpers = require('./helpers.js');
// route middleware to make sure a user is logged in
function isLoggedInAJAX(req, res, next) {
// if user is authenticated in the session, carry on
if (req.isAuthenticated())
return next();
res.json(helpers.shootMessage(helpers.getNOK(), "You're not logged in!"));
}
// route middleware to make sure a user is logged in
function isLoggedIn(req, res, next) {
// if user is authenticated in the session, carry on
if (req.isAuthenticated())
return next();
//save the page
req.session.returnTo = req.path;
// if they aren't redirect them to the home page
//res.redirect('/info');
res.redirect('/auth/facebook');
}
【问题讨论】:
-
你能发布你的整个 permissions.js 文件吗?
-
好的,一分钟内完成新编辑。完成。
-
检查我的答案:P
标签: javascript node.js express routes