我如何添加更多的参数到我的function?

我正在使用NodeJS,expression和护照。 不过,我认为这个问题只是关于JavaScript。 在我的路线文件中,我有

app.get( '/users', login_req, user.index); 

所以当服务器在/ users接收到一个get请求时,它将通过login_req函数传递req, res, next如果授权用户,login_req将调用user.index函数。 我想知道如何以及如何添加更多的参数login_req? 我的目标是能够通过login_req(['admin'],['user1', 'user2'])等附加参数来select哪些用户可以访问user.index。

这是我的login_req代码:

 exports.login_req = function(req, res, next) { if (req.isAuthenticated()) { return next(); } res.redirect('/login') } 

我想,一般来说,我想知道如何将更多的参数附加到callback。

上面的答案应该工作,但是我正在寻找一个更有组织的解决scheme。 用我从上面的答案中学到的东西,我提出了以下几点。

我从jQuery中学到了如何在callback中添加更多参数的更多参数。 这是我的代码:

 exports.login_req = function(groups, users) { return function(req, res, next) { console.log(groups, users) if (req.isAuthenticated()) { return next(); } res.redirect('/login') }; } 

 app.get( '/users', login_req("group1"), user.index); 

login_req的callback传递groups =“group1”和users = undefined。 login_req返回args req, res, nextgroups, users的匿名函数,可以通过闭包获得。 我已经打印出团体和用户的概念certificate,似乎工作。

我更喜欢这个方法,因为现在我可以像这样组织我的routes.js文件:

 app.get( '/users', login_req("admins"), user.index); app.get( '/users/new', user.new); app.post( '/users', user.create); app.get( '/users/:id', user.show); app.get( '/users/:id/edit', login_req("admins", "user1"), user.edit); app.put( '/users/:id', login_req("admins", "user1"), user.update); app.del( '/users/:id', login_req("admins", "user1"), user.destroy); 

通过一个匿名函数来getget调用login_req

 app.get('/users', function (req, res, next) { login_req(req, res, next, something, somethingElse); }, user.index);