我是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()
,但这显然是不正确的。我以为我遗漏了一些显而易见的东西,但是环顾四周后,我仍然找不到答案。任何方向将不胜感激。
答案 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()