【问题标题】:Did node require change?节点是否需要更改?
【发布时间】:2022-01-23 15:55:29
【问题描述】:

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

这是我的代码:

main.js:

require("./test");

console.log(x);

test.js:

var x = 3;

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

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

ReferenceError: x is not defined

【问题讨论】:

  • 你的模块没有导出 x / 没有将 x 添加到全局对象中
  • 您应该阅读有关 export 和 require.. 以及这个here
  • @GoldenretriverYT 但它以前工作过
  • @user11914177 不 - 您可能确实将它们放在全局中或在“有效”时将它们导出

标签: javascript node.js require


【解决方案1】:

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

const x = 3;
module.exports = x;

main.js:

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

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

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

你需要从test.js导出var

export var x = 3;

之后导入main.js

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

【讨论】:

    【解决方案3】:

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

    test.js:

    global.x = 3;
    

    main.js:

    require("./test");
    
    console.log(x);
    

    【讨论】:

      【解决方案4】:

      如果不导出变量,则不能在所需文件中使用变量声明。

      More document about export

      test.js:

      var x = 3;
      
      module.exports.x = x;
      

      main.js:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多