带默认参数的模块导出

Posted

技术标签:

【中文标题】带默认参数的模块导出【英文标题】:Module export with default parameters 【发布时间】:2021-05-28 19:29:02 【问题描述】:

我正在尝试在 Node.js 中导出一个包含一些功能的模块。其中一个函数具有包含默认值的可选参数。

module.exports = 
    foo = (a, b = 2, c = y:0) => 
        // Code
    ,
    bar = () =>  
        // Codes 
    ,

函数在未导出时有效。移入module.exports时,出现如下错误:

SyntaxError: Invalid shorthand property initializer
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/<link to this file>:2:62)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/<link to server.js file>:20:18)

我知道参数可以在函数的代码中进行默认设置。不过,括号中的默认参数在module.exports 中不起作用吗?任何帮助修复它?谢谢。

【问题讨论】:

【参考方案1】:

你的对象符号不正确:

foo = () =&gt; 更改为foo: () =&gt;

module.exports = 
    foo: (a, b = 2, c = y:0) => 
        // Code
    ,
    bar: () =>  
        // Codes 
    

【讨论】:

以上是关于带默认参数的模块导出的主要内容,如果未能解决你的问题,请参考以下文章

关于python带默认值的参数只能放在后面的问题

windows设置默认程序如何带参数

使用带条件默认参数的部分

类模板参数带默认值

自学入门不在困难,初学者挑战学习Python编程30天

C++ 带默认参数值的函数