在JavaScript中使用导出

时间:2018-08-24 19:43:26

标签: javascript

我是javascript新手,尝试使用一些生成的代码并遇到一些有关导出的问题。由于file1是自动生成的,因此,如果可能的话,我只希望编辑file2。

在file1.js中,我有:

var exports = function(apiClient) {
    ...
    this.apiClient = apiClient || ApiClient.instance;
    this.listAssets = function(opts, callback) {
    ...
    }
}

我想在file2.js中使用函数listAssets。我尝试在file2.js中执行以下操作:

var myInstance = require('../../jsCode/src/api/file1');

,然后调用myInstance.getAssets(),但这显然是不正确的。我以为我遗漏了一些显而易见的东西,但是环顾四周后,我仍然找不到答案。任何方向将不胜感激。

2 个答案:

答案 0 :(得分:1)

使用module.exports

module.exports = function(apiClient) {
    ...
    this.apiClient = apiClient || ApiClient.instance;
    this.listAssets = function(opts, callback) {
    ...
    }

    // now return an object containing the API you need in your import
    return { 
        apiClient: this.apiClient, 
        listAssets: this.listAssets 
    };
}

,然后按照您的建议要求使用模块:

var myInstance = require('../../jsCode/src/api/file1')(apiClient);

这称为 CommonJS ,它是一组有关如何处理模块进出口的协议。请记住,导入的函数需要作为参数传递apiClient

答案 1 :(得分:-1)

您可以使用以下解决方案:

module.exports = function()