Javascript 如何访问meteor包中的变量(函数)?

Javascript 如何访问meteor包中的变量(函数)?,javascript,node.js,meteor,Javascript,Node.js,Meteor,我的meteor应用程序中安装了meteor软件包 /packages/mypackage/some_code.js 里面有一个函数: function myFunction(){ ... } 我想从我的Metore应用程序中的另一个文件调用此函数。这两个代码都在服务器端运行 /imports/api/myapi.js 如何从myapi.js访问myFunction 更新: 经过多次尝试和错误后,我的导出如下所示: var exports = module.exports = {}

我的meteor应用程序中安装了meteor软件包

/packages/mypackage/some_code.js
里面有一个函数:

function myFunction(){
    ...
}
我想从我的Metore应用程序中的另一个文件调用此函数。这两个代码都在服务器端运行

/imports/api/myapi.js
如何从myapi.js访问myFunction

更新:

经过多次尝试和错误后,我的导出如下所示:

var exports = module.exports = {};

exports.getResponses = function (){
    return responses;
}
和进口:

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

本主题包含在本手册中。在该指南中:

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

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

这也适用于
/package
目录中的内部包。只需确保您拥有
ecmascript
core包,并且正确导出/导入对象即可。您还需要通过
meteor add
或手动输入,在
.meteor/packages
中添加包名

编辑-关于导入/导出语法的一些详细说明-希望这能帮助您调试
未定义的
问题

发件人:

有两种类型的导出,命名导出和默认导出

命名导出:

export { myFunction }; // exports a function declared earlier
export const foo = Math.sqrt(2); // exports a constant
默认导出:(每个脚本仅一个)

命名导出允许为每个脚本导出多个值,而导出默认值允许为每个脚本导出一个值或回退

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

import { myFunction, foo } from 'some-module.js';
而导入默认值的方式如下所示:

import defs from 'definitions.js';

听起来这是为了创建包,然后我可以通过
meteor add package
添加包,而且我在export语句中得到了'SyntaxError:Unexpected reserved word'(在meteor上,我安装了ecmascript packagae)。对于
/package
目录下本地存储的包,它的工作方式相同。Meteor将首先使用
.Meteor/packages
文件中列出的包查看那里。我将更新我的答案。另外-您的包是否依赖于ecmascript?你能在问题中发布你的更新代码吗?实际上是这个包,我正在编辑的文件是saml_server.js,因为我需要idp的响应。但是,是的,我不是通过meteor add将其包括在内的。我在包目录中本地拥有它。因此,直到现在,我才在saml_服务器的第5行中添加了“export const myName=”my package“。js?你能用你的导入/导出代码更新你的问题吗?用你的新更新:你是否在定义函数后的任何地方调用
export getResponses
?现在,您的函数仍然只是定义在其中的文件的本地函数。看起来您已经能够理解它了!你遗漏了什么?是的,包中的.js文件也必须被添加(见问题)。只导入包是不够的。太棒了!很高兴你明白了。
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';