Nice programing

NodeJs require ( './ file.js') 문제

nicepro 2020. 11. 24. 19:55
반응형

NodeJs require ( './ file.js') 문제


내 NodeJs 프로젝트에서 실행할 파일을 포함하여 문제가 있습니다.

동일한 디렉토리에 두 개의 파일이 있습니다.

a.js

var test = "Hello World";

b.js

require('./a.js');
console.log(test);

b.js를 실행 node b.js하고 오류가 발생 ReferenceError: test is not defined합니다.

http://nodejs.org/api/modules.html#modules_file_modules 문서를 살펴 보았습니다.

내가 무엇을 놓치고 있습니까? 미리 감사드립니다.


변수를 내보내도록 a.js변경하십시오 .

exports.test = "Hello World";

의 반환 값을 require('./a.js')변수에 할당합니다 .

var a = require('./a.js');
console.log(a.test);

자주보고 사용하는 또 다른 패턴은 다음과 같이 a.jsmodule.exports객체에 무언가 (객체, 함수)를 할당하는 것입니다 .

module.exports = { big: "string" };

무슨 일이 일어나야하는지 오해하고 있습니다. 모듈에 정의 된 변수는 공유되지 않습니다. NodeJS는 범위를 지정합니다.

으로 반환해야합니다 module.exports.

a.js

module.exports = "Hello World";

b.js

var test = require('./a.js');
console.log(test);

변수를 다른 파일로 내보내려는 경우 두 가지 패턴이 있습니다. 하나는 a.js
global.test = "Hello World";// test는 전역 변수이지만 오염 될 것입니다.

다른 하나는
a.js module.exports.test = "Hello World";또는 exports.test = "Hello World"입니다. b.js var test = require('./a.js');// test in b.js can get the test in a.js console.log (test);

참고 URL : https://stackoverflow.com/questions/11726525/nodejs-require-file-js-issues

반응형