节点是否需要更改?

Did node require change?

我之前使用 require 将其他 js 文件包含到我的节点项目中,如 中所示。 但由于某种原因,这不再有效,是 Node 发生了变化还是我遗漏了一些错误?

这是我的代码:

main.js:

require("./test");

console.log(x);

test.js:

var x = 3;

运行 此代码导致此错误消息:

main.js:3
console.log(x);
            ^

ReferenceError: x is not defined

在没有导出变量的情况下,您不能在所需文件中使用变量声明。

More document about export

test.js:

var x = 3;

module.exports.x = x;

main.js:

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

console.log(test.x);

嗯,你需要添加这个 - test.js:

const x = 3;
module.exports = x;

main.js:

const x = require('./test.js');
console.log(x);

和文档: https://nodejs.org/api/modules.html

查看另一个项目我找到了我想要的:

test.js:

global.x = 3;

main.js:

require("./test");

console.log(x);

您需要从 test.js

导出变量
export var x = 3;

之后导入 main.js

var { x } = require("./test");
console.log(x);