[英]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.