如何访问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导出指南”涵盖了这个主题。 在该指南中:
虽然有一些软件包只是为了给应用程序提供副作用,但大多数软件包提供了一个可重用的代码,消费者可以在导入时使用它。 要从包中导出符号,只需在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的导出,分别是named和default 。
命名的出口:
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';