簡體   English   中英

使用 node 從 javascript 文件導入和運行函數

[英]importing and running functions from javascript files with node

我有一個簡單的 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訪問它。

a.js

module.exports = {
    foo: function() {
        console.log('Hello World!');
    }
}

然后在b.js

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

我能夠弄清楚這一點! module.exports 需要定義。 啊,從頭開始學習 JavaScript 的樂趣!

b.js 是:

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

a.js 是:

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

module.exports = {
    foo: foo
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM