2016-06-28 3 views
1

私はいつでもどこでも必要としても、socket.io接続をモジュール式にして、一度実行させたいと思います。どのようにエクスポートするのですか?express.js(node.js)の混乱が必要となります。

var server = require("http").Server(express); 
var io = require("socket.io")(server); 
server.listen(5000); 
io.on('connection', function(client) { 
    client.on('order_'+userId, function(data) { 
     io.emit('order_'+userId,data); // emit to cilent of dashboard 
    }); 
}); 

どのように必要ですか?私は、任意の変数に代入する必要はありません私の場合は

var moment = require('moment'); 

またはいつか

var LocalStorage = require('node-localstorage').LocalStorage; 

のように異なるパターンを見て、それが即座に実行したいんです。可能?

+0

[Node.js module.exportsの目的は何ですか?どうすれば使用できますか?](http://stackoverflow.com/questions/5311334/what-is-the-purpose-of-node -js-module-exports-and-how-do-use-it)を実行します。 – docksteaderluke

答えて

0

require()は、モジュールがエクスポートする内容を返します。これは、Objectfunction、またはさらにStringまたはNumberのいずれかです。通常はObjectまたはfunctionのいずれかです。たとえば、var server = require('http')は、Server()メソッド(コードサンプルの最初の行で呼び出す)を持つObjectを返します。本当にパッケージの作者の責任です。

あなたのコードは大丈夫です。 socket.ioは変数に割り当てられます。なぜなら、後でそれを参照する方法だからです。 io.on('connection', ...)は事実上一度だけ呼び出されます。これは接続を待機し、接続イベントが発生するたびにfunction(client) {...}が呼び出されます。この実装には大きなパフォーマンス上の問題はありません。

関連する問題