2017-04-11 8 views
0

Electron(Nodejsを使用)に2つのjsファイルがあり、1つからエクスポートして別のものに必要とします。メソッドとプロパティを使用してオブジェクトをエクスポートする方法

app.js:私は輸出の可能なあらゆる方法を試してみました

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

exports.App = App 

、その上module.exports = Appmodule.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

関連する問題