2017-04-11 1 views
0

Electron (Nodejs를 사용하는)에 두 개의 js 파일이 있는데 한 파일에서 내보내고 다른 파일에서 필요로합니다.메서드 및 속성을 사용하여 개체를 내보내는 방법

app.js : 나는 수출의 가능한 모든 방법을 시도

App = { 
server: { 
    host: '192.168.0.5', 
    user: 'root', 
} 
ping: function() { 
} 
} 

exports.App = App 

, 등등 module.exports = App, module.exports.App = App 등.

ping.js 첫 번째 시도 :

var App = require('../app.js') // I have also tried adding .App to the end 
console.log(App) // This returns an object which contains the App object 

ping.js 두 번째 시도 :

var App = require('../app.js') 
App.x = 'y' 
console.log(App) // this returns an object which contains the App object and the x property 

App 다른 App 개체가 포함되어 나타날 수 있지만 console.log(App.App)이 존재하지 않는 말했다.

답변

1

나는이 같이 내가 필요한 모듈의 전체 경로를 사용하고 있는지 확인하는 것입니다 해결해야 할 거라고 가장 먼저하는 일이이 app.js 파일이 있다고 가정

const Path = require('path') 
const App = require(Path.join(__dirname,'../app')) // the .js isn't needed here. 

주 응용 프로그램이 실행되는 상위 디렉토리에 있습니다.

그래도 작동하지 않는다면 파일이 생각하는 위치에 있는지, 실행중인 프로세스가 생각하는 파일 시스템 내에 있는지 확인해야합니다.

console.log("current working directory:",process.cwd()) 

또는 ES6의

가 : 인쇄 된 디렉토리가 가정 일치하지 않는 경우

console.log(`current working directory: %s`, process.cwd()) 

, 그에 따라 require 문을 수정 당신은 당신의 주요 스크립트 파일의 상단에이를 추가하여 확인할 수 있습니다 .

const App = { 
    ... 
} 
module.exports = App 

또는 사용 ES7 :

그리고 레코드에 대한

, 당신의 앱지도를 내보낼 수있는 "올바른"방법은하는 것

export default App = { 
    ... 
} 

(ES7 모듈에 대한 자세한 내용은 export를 참조하십시오.)

, 당신은 다음과 같은 모듈이 필요한 것

어느 방법 :

const App = require(PATH_TO_APP) 
+0

문제점을 발견했습니다. index.html에서'require ('app.js')'를 사용하고 있었지만'ping.js'는'app.js'에서만 필요했습니다. index.html에'require ('ping.js')'를 추가했는데 성공했습니다. – Alex

관련 문제