簡體   English   中英

module.exports無法按預期工作

[英]module.exports not working as expected

我想在節點中導出一個函數,然后在另一個文件中調用它。 它總是以某種方式始終在導出模塊中執行整個代碼(不僅是導出的函數)。

//file:  test.js

module.exports = function () {
console.log("Hello");
}

console.log("Hello2");



//file: test2.js
var test = require("./test");
test();

// Desired Output: Hello
// My actual Output: Hello2 Hello

有人可以解釋一下,為什么該日志不在導出的括號內,但為什么它還要運行第二個日志(Hello2)?

當您require文件時,可以導入整個文件並執行該文件。 由於console.log('Hello2'); 未在函數中定義,而是在需要文件時執行。

這就是為什么您應該首先看到Hello2原因。 然后調用test函數,該函數執行並打印出Hello

您的輸出應為:

Hello2 
Hello

嘗試進行命名導出,

例如:

module.exports = function first () {
  console.log("Hello");
}

並在您的test2.js中:

var test = require("./test");
test.first();

當您做var test = require("./test"); 您需要整個文件,而不僅僅是導出的模塊。 在您希望使用該功能的文件中,您需要從另一個文件導入該功能。

嘗試這樣做:

//file:  test.js

module.exports = function () {
console.log("Hello");
}

console.log("Hello2");



//file: test2.js
import { test } from './test'
test();

暫無
暫無

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

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