当前位置: 首页 > 知识库问答 >
问题:

在节点中声明多个模块导出.js

刘弘新
2023-03-14

我试图实现的是创建一个包含多个功能的模块。

模块. js:

module.exports = function(firstParam) { console.log("You did it"); },
module.exports = function(secondParam) { console.log("Yes you did it"); }, 
// This may contain more functions

main.js:

var foo = require('module.js')(firstParam);
var bar = require('module.js')(secondParam);

我遇到的问题是,第一个Param是一个对象类型,第二个Param是一个URL字符串,但是当我有这个时,它总是抱怨类型是错误的。

这种情况下如何申报多个module.exports?

共有3个答案

万喜
2023-03-14

除了@mash回答之外,我还建议你始终做到以下几点:

const method = () => {
   // your method logic
}

const otherMethod = () => {
   // your method logic 
}

module.exports = {
    method, 
    otherMethod,
    // anotherMethod
};

注意这里:

>

  • 您可以从otherMethod调用方法
  • 您可以在需要时快速将方法隐藏为私有方法
  • 这使大多数IDE更容易理解和自动完成代码;)
  • 您还可以使用相同的导入技术:

    < code > const { other method } = require('。/my module . js’);

  • 胡昊
    2023-03-14

    要导出多个函数,只需如下所示:

    module.exports = {
       function1,
       function2,
       function3
    }
    

    然后在另一个文件中访问它们:

    var myFunctions = require("./lib/file.js")
    

    然后,您可以通过调用以下函数来调用每个函数:

    myFunctions.function1
    myFunctions.function2
    myFunctions.function3
    
    微生嘉
    2023-03-14

    你可以这样做:

    module.exports = {
        method: function() {},
        otherMethod: function() {},
    };
    

    或者只是:

    exports.method = function() {};
    exports.otherMethod = function() {};
    

    然后在调用脚本中:

    const myModule = require('./myModule.js');
    const method = myModule.method;
    const otherMethod = myModule.otherMethod;
    // OR:
    const {method, otherMethod} = require('./myModule.js');
    
     类似资料:
    • 问题内容: react.js的新功能并尝试遵循本教程。不幸的是,页面中给出的代码无法正常工作。webpack抱怨 想知道如何解决它。谢谢。 === App.jsx ==== === main.js === 更新1 我注释掉了所有内容,并在末尾添加了以下内容 现在没有编译错误,但是网页为空白。我不确定这里出什么问题了。 问题答案: 您只能声明一个默认出口,例如: 要么 然后做 如果要导出更多内容,则

    • 我正在创建一个环境模块来补充缺失的打字。我可以创建打字。d、 ts这为环境模块提供了正确的类型。 由于某种原因,当我这样做时,环境模块的import语句中断。 typings.d.ts 在上面的例子中,我想从另一个库中提供适当的返回类型。

    • 我正在尝试创建一个导出多个ES6类的模块。假设我有以下目录结构: 和每个导出一个默认ES6类: 我目前有我的设置如下: 但是,我无法导入。我希望能够这样做,但找不到类: 在ES6模块中导出多个类的正确方法是什么?

    • 我试图上传一个图像到内存使用multer,然后处理它与夏普和保存到磁盘。当我尝试在我的中间件中做多个module.exports时。 错误是: TypeError FileUpload.Single不是函数 到目前为止的路线是: 当我刚刚有下面的路由之前,尝试添加图像处理,我没有得到一个错误;

    • use 声明可以将一个完整的路径绑定到一个新的名字,从而更容易访问。 // 将 `deeply::nested::function` 路径绑定到 `other_function`。 use deeply::nested::function as other_function; fn function() { println!("called `function()`"); } mod de

    • 问题内容: 我有一个使用Java Webstart技术的项目。我决定将Java版本从8升级到9。但是,在编译时遇到以下错误: 我试图将其包含到类路径中,但仍然存在相同的问题。 问题答案: 看起来默认情况下,类路径上的代码未解析 java.jnlp (非常类似于Java EE模块 )。解决的办法是用明确添加(两者并接受参数)。 JEP 261:模块系统 或此博客文章中讨论了此选项。