Javascript expressjs和对象构造函数的路由错误
我正在使用express和nodejs创建一个API REST,并在我的路由的早期阶段使用Im 我的想法是为每个分离的路由创建“控制器”,并在路由器文件中调用该控制器,如:Javascript expressjs和对象构造函数的路由错误,javascript,node.js,rest,express,coffeescript,Javascript,Node.js,Rest,Express,Coffeescript,我正在使用express和nodejs创建一个API REST,并在我的路由的早期阶段使用Im 我的想法是为每个分离的路由创建“控制器”,并在路由器文件中调用该控制器,如: ... router.post('/login', loginCtrl.login(req, res)); 在另一个项目中,我用一个简单的函数对象来处理它,需要它,然后调用那个函数。现在我的想法更有趣了,我正在使用对象构造函数,比如: var ctrl = function() { this.login = func
...
router.post('/login', loginCtrl.login(req, res));
在另一个项目中,我用一个简单的函数对象来处理它,需要它,然后调用那个函数。现在我的想法更有趣了,我正在使用对象构造函数,比如:
var ctrl = function() {
this.login = function(req, res) {
res.json({ msg: 'hello' }); // just an example
}
}
我在coffeescript上写这篇文章(客户想要咖啡,所以…),sintax使用了该元语言,但至少是相同的,我的问题是req
和res
,这是我的路由器文件:
express = require 'express'
router = express.Router()
###
Rutas de autenticación
###
AuthController = require '../controllers/authenticate'
auth = new AuthController()
router.post '/setup' , auth.setup req, res
router.post '/register', auth.register req, res
router.post '/login' , auth.login req, res
module.exports = router
当服务器运行时,它向我抛出以下错误:
/home/nano/Dev/erp-api/app/routes/apiroutes.coffee:17
router.post('/setup', auth.setup(req, res));
^
ReferenceError: req is not defined
这到底是为什么?我不知道,当我使用普通对象时,它可以工作。就像您使用变量调用函数设置一样,而您想要的是将引用传递给函数。因此,您必须将引用传递给它,而不是执行它
router.post '/setup' , auth.setup
req、res将自动传递给该函数