如何在Node.js中的多个文件之间共享变量

时间:2018-11-03 20:58:33

标签: javascript node.js file

// app.js

var myvar = 1  
module.exports = {myvar}; 

//我的项目中的另一个人

var mynewvar =require("../app.js")
console.log(mynewvar.myvar); // undefined ? 

我需要使var在所有项目中都是全局的吗? 我正在全球尝试,但是同一问题有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

我唯一的猜测是您可能没有正确的app.js路径。这有效:

// app.js

var myvar = 1  
module.exports = {myvar}; 

// index.js

var mynewvar =require("./app.js")
console.log(mynewvar.myvar);

这是一个显示它有效的副本:

https://repl.it/repls/CruelMonstrousArchives

也许您正在做与此不同的事情?

答案 1 :(得分:1)

您可以通过es6(lib.js)或es5(lib2.js)的方式轻松实现这一目标。

实时示例:https://codesandbox.io/embed/mo8z2ooovj

导出模块es6 lib.js:

const myvar = 1;
export default myvar;`

导出模块es5 lib2.js:

var myvar2 = 2;
module.exports = myvar2;`

进入另一个文件,您可以导入模块并显示类似的值,我使用一个组件:

 import myvar from "./lib";
 import myvar2 from "./lib2";

 // you can use the imported values here as you need


 // e.g.
 function App() {
   return (
     <div className="App">
       <h1>Hello CodeSandbox</h1>
       <p>value from lib.js {myvar}</p>
       <p>value from lib2.js {myvar2}</p>
      <h2>Start editing to see some magic happen!</h2>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);`