これは私の問題です。私は私の "メインファイル"の配列を持っていて、私は他のファイル間でその配列を使用できるようにする必要があります。それは常に複数のファイルにわたって配列全体を使用するNode.js
function putsSocketsInArray() {
myArray.push(rawSockets) }
を変更していますので、
var myArray = []
この配列は、今私は、アレイ内のすべてのソケットへの書き込みを別のスクリプトでは、例えばその配列を使用したい、私のサーバーに接続するソケットを保持しています。
'use strict'
//broadcast function
function talkAll (myArray, message, sender) {
myArray.forEach(function (connection) {
//don't want to send it to sender
if (connection === sender) return;
connection.write(`${message} \n`);
});
}
module.exports = talkAll
talkAll関数が同じ "main.js"ファイルである限り、これは機能します。
(main.js内のコード)
telnetSocket.on('data', function (data) {
talkAll(myArray, telnetSocket.name + ">" + data, telnetSocket);
});
まあ、私はモジュールにそれを区切るする必要がありますが、私はときに私second.jsファイルは、myarrayのを使用することはできません(これは、telnetサーバがあります)まったく。配列が定義されていないとエラーになります。しかし、私がsecond.jsでそれを定義しようとする試みをしたり、その配列を取得する関数を作成しようとするときにも。配列は空白になります。
以下のjcaronから提供された回答が私のために働いていました。子供たちも、間違ったスクリプトを10分間編集していないことを確認してください。
エクスポートする必要があります。 – SLaks
配列をエクスポートするたびに、私の.forEachエラーが関数ではないことがわかります –
それは間違っています。 – SLaks