如何访问meteor包内的variables(函数)?

我有一个meteor软件包安装在我的Meteor应用程序

/packages/mypackage/some_code.js 

里面是一个function:

 function myFunction(){ ... } 

我想从我的metoer应用程序中的另一个文件调用此function。 两个代码都在服务器端运行。

 /imports/api/myapi.js 

我如何从myapi.js访问myFunction?

更新:

大量的尝试和错误后,我的出口看起来像这样:

 var exports = module.exports = {}; exports.getResponses = function (){ return responses; } 

和import:

 import { getResponses } from 'meteor/user:mypackage/myfile.js' ; 

       

网上收集的解决方案 "如何访问meteor包内的variables(函数)?"

“ meteor导出指南”涵盖了这个主题。 在该指南中:

虽然有一些软件包只是为了给应用程序提供副作用,但大多数软件包提供了一个可重用的代码,消费者可以在导入时使用它。 要从包中导出符号,只需在mainModule中使用ES2015导出语法即可:

 // in my-package.js: export const myName = 'my-package'; 

现在,您的包的用户可以通过以下方式导入符号:

 import { myName } from 'meteor/username:my-package'; 

这也适用于/package目录中的内部软件包。 只要确保你有ecmascript核心包,并且正确导出/导入你的对象。 您还需要通过meteor add <package>.meteor/packages meteor add <package>的名称,或者手动input。

编辑 – 一些关于导入/导出语法的详细说明 – 希望这可以帮助您debuggingundefined问题!

从MDN的import/出口指南 :

有两种types的导出,分别是nameddefault

命名的出口:

 export { myFunction }; // exports a function declared earlier export const foo = Math.sqrt(2); // exports a constant 

默认导出:(每个脚本只有一个)

 export default function() {} // or 'export default class {}' // there is no semi-colon here 

命名导出允许为每个脚本导出多个值,而导出默认值时允许每个脚本导出一个或备用。

例如,要从多个命名导出导入,您可以编写:

 import { myFunction, foo } from 'some-module.js'; 

而导入默认值如下所示:

 import defs from 'definitions.js';