2016-12-17 42 views
-2

我在写我的控制器这样意外的标记{模块出口的node.js

module.exports.create_payment = function(){ 
    console.log('create_payment') 
} 

,但有一个与上面的图案有问题。想象一下,我有10个在一个控制器方法,然后我会写module.exports.method1,module.exports.method2等。

所以要解决,我包并返回,如下面的方法

module.exports = { 

    return { 

     create_payment: function(req,res,next){ 

      console.log('create_payment') 

     } 
    } 
} 

但是我得到了意想不到的令牌错误,怎么了?

回答

3

您分配给module.exports的值是对象字面值,而不是函数值。你不能在其中放置一个return语句。

module.exports = { 
    create_payment: function(req, res, next) { 
     console.log('create_payment') 
    } 
}; 
+0

如果上面的代码放在一个文件调用payment.js,我可以用它这样 'VAR支付=需要(“支付”); app.post('/ pay',payment.create_payment);' ? –

+0

是的。这是出口的重点。 – Quentin

+0

奇怪,我看到有些人在控制器中使用return。您是否必须在express.js中使用揭示模块模式?因为它内置了模块出口。 –