2014-04-06 5 views
2

nodejs와 웹 자바 스크립트에서 설정 파일을 사용하고 싶습니다.nodejs와 web에서 javascript를 동시에 사용하는 방법은 무엇입니까?

config.js :와 nodejs에서

var conf = {}; 

conf.name = 'testname'; 
conf.pass = 'abc123'; 
conf.ip = '0.0.0.0'; 
conf.port = 100; 
conf.delay = 5; 

exports.config = conf; 

사용이 :

var conf = require('config.js'); 
console.log(conf.config.name); 

는 HTML하지만 어떻게 내이 같은 파일을 사용하려면? 이 방법으로 생각하고 있었지만 웹에서 사용하는 방법을 모르겠습니다. 웹에서 사용할 때 참조 오류가 발생합니다 : 내보내기가 정의되어 있지 않습니다.

config.html :

<!doctype html> 
<html lang="en"> 
<head> 
    <title>Document</title> 
    <script src="./config.js"></script> 
    <script> 
     var cnf = conf; 
     function getCnf(){ 
      alert(cnf.config.name); 
     } 
    </script> 
</head> 
<body> 
    <button onclick="getCnf();">test</button> 
</body> 
</html> 

누구든지 내가 시스템 nodejs와 웹 모두에서 사용하는 config.js을 변경해야합니다 방법을 알고?

PS : Webside가 nodejs http npm 모듈에서 실행 중입니다.

+2

이렇게하면 클라이언트 측에 구성이 노출되지 않으므로 쉽게 경로를 만들고 방문자가 관리자 권한을 가지고 있는지 여부를 확인하고 JSON을 제공 할 수 있습니다 – Gntem

답변

1

당신이 당신이 module을 가지고 exportsexports에 값을 설정하기 전에 사용할 수 있는지 확인합니다이

if (typeof module !== 'undefined' && module.exports) { 
    module.exports.config = conf; 
} 

처럼, 그 주위에 조건을 넣을 수 있습니다.

참고 :exportsmodule.exports을 나타내는 또 다른 변수입니다. 따라서 둘 중 하나에 다른 것을 지정하지 않으면 둘 다 하나이고 동일합니다. 두 경우 모두에 무언가를 지정하면 module.exports에있는 내용이 Node.js로 내보내집니다. exports에 대한 자세한 내용은 blog post

0

browserify을 사용하여 환경 스위치를 사용하지 않고 브라우저에서 CommonJS를 번들로 사용할 수 있습니다.

  1. npm i browserify -g
  2. 번들 당신의 config.js를 사용 browserify 설치하고 -r 태그

    browserify -r ./config.js -o bundle.js

  3. 와 외부 사용을 위해 수출 코드에서 번들을 포함하고 사용

<!doctype html> 
<html lang="en"> 
<head> 
    <title>Document</title> 
    <script src="./bundle.js"></script> 
    <script> 
     var cnf = require("./config.js"); 
     function getCnf(){ 
      alert(cnf.config.name); 
     } 
    </script> 
</head> 
<body> 
    <button onclick="getCnf();">test</button> 
</body> 
</html> 
0

감사합니다. 그 유형이 모두 필요했습니다.

@Phoenix : 나는 그것을 할 수있는 방법이 있다는 것을 알고 있지만 반드시 필요한 것은 아닙니다. 변수는 나중에 일부 Ajax 요청 및 deley 타이머에만 사용됩니다.

관련 문제