javascript - 使用 Node 从 javascript 文件导入并运行函数

标签 javascript

我有一个简单的 JavaScript 问题。我在同一目录中定义了两个文件,a.js 和 b.js。

在 a.js 中我定义了一个函数:

function foo() {
console.log('Hello World!');
}

在 b.js 中我有:

var a = require('./../scenarios/a.js');
a.foo();

但是,当我运行 Node b.js 时,我得到:

b.js:4
a.foo();
  ^

TypeError: a.foo is not a function
    at Object.<anonymous> (/Users/dlumma/dev/bloomguild-applitools-sunbasket/scenarios/b.js:4:3)
    at Module._compile (module.js:573:30)
    at Object.Module._extensions..js (module.js:584:10)
    at Module.load (module.js:507:32)
    at tryModuleLoad (module.js:470:12)
    at Function.Module._load (module.js:462:3)
    at Function.Module.runMain (module.js:609:10)
    at startup (bootstrap_node.js:158:16)
    at bootstrap_node.js:598:3

知道我做错了什么吗?

最佳答案

您需要先导出该函数,然后才能访问它。

a.js:

function foo() {
console.log('Hello World!');
}

exports.foo = foo;

然后您应该能够在 b.js 中访问它。

关于javascript - 使用 Node 从 javascript 文件导入并运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45990640/

相关文章:

javascript - 仅第一次触发的连续 Html5 音频 .play()

javascript - GraphQL错误: Expected undefined to be a GraphQL type

javascript - 在类上添加 onclick 事件

javascript - 需要帮助解释 javascript 正则表达式

Javascript 减法很好,加法失败

javascript - Javascript 中的原生 64 位整数

javascript - 使用开/关事件绑定(bind)?

javascript - 基于 Angular 组件的方法和在 Router 中使用 resolve

javascript - AngularJS ng-if 根据路由位置显示标题内容

javascript - 创建模型时 Sequelize 连接错误