편집 :분명히하기 위해 아래 코드는 당면 문제에 초점을 맞추어 단순화되었습니다. 나는 window
이 노드에 "존재하지 않음"을 알고 있습니다. 이 코드는 실제로 오프라인 렌더링을 위해 jsdom
과 함께 사용됩니다 (내 문맥에서 window
을 사용할 수 있음). window
및 document
:NodeJS : 'require'에 변수를 전달할 수 있습니까?
나는 require
에 부하 두 변수에 액세스 할 수 있어야합니다 모듈이 필요합니다. 저는 Node를 처음 접했고 변수 범위와 관련하여 뭔가 빠졌을 것입니다. 내부 함수가 외부 함수의 매개 변수에 액세스 할 수 있다고 생각했습니다. 그래서 여기 내가 사용하는 메커니즘 (이 코드는 다음과 같이 많은 이해가되지 않습니다 알고,하지만 난 실제 코드에서 "아이디어"를 추출하는 시도)입니다 :
var t = function(window, document){
var Chart = require('chart.js');
}
var t2 = function(){
var window = {};
var document = {};
t(window, document);
}
t2();
는하지만 그것은 작동하지 않습니다. chart.js
이로드 될 때 window
및 document
은 정의되지 않습니다. 나는 그것이 작동되도록하려면 전역으로 window
및 document
를 선언해야합니다
window = null;
document = null;
var t = function(window, document){
var Chart = require('chart.js');
}
var t2 = function(){
t(window, document);
}
t2();
을하지만 그것은 아마 나쁜.
어떻게 이것이 "제대로"이루어 집니까? Chart.js 모듈 자체는 수정할 수 없습니다.
번들러를 사용 중이고 서버 측 렌더링을하지 않을 경우 'window'또는 해당 속성을 명시 적으로 전달할 필요가 없으며 코드가 실행될 때 전역 적으로 사용할 수 있습니다 (브라우저, 노드에 없음) –
NodeJS에서'window'를 사용해야합니까? – epascarello
노드와 노드에서 문서가 필요합니다. –