【问题标题】:unexpected token { in module export node.js模块导出 node.js 中的意外令牌 {
【发布时间】:2016-12-17 08:47:22
【问题描述】:

我是这样写控制器的

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')

        }
    }
}

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

【问题讨论】:

    标签: javascript node.js express


    【解决方案1】:

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

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

    【讨论】:

    • 如果上面的代码放在一个文件调用 payment.js 中,我可以像这样使用它var payment = require('payment'); app.post('/pay',payment.create_payment); 吗?
    • 奇怪,有些地方我看到人们在控制器中使用 return。你必须在 express.js 中使用显示模块模式吗?因为它内置了模块导出。
    • 如果你这样做了,它不在需要属性名称的对象文字中。
    • 没有。您永远不必使用显示模块模式……而且在 Node 模块中这样做是没有意义的。
    • 所以对象字面量是node.js中最常见的做事方式?等等,es6前端也有import和export,意思是暴露模块模式没用了?
    猜你喜欢
    • 2020-12-30
    • 2019-02-13
    • 1970-01-01
    • 2019-08-07
    • 2018-11-10
    相关资源
    最近更新 更多