在express.js(node.js)中要求并输出混淆

时间:2016-06-28 14:46:34

标签: javascript node.js express

我想让我的socket.io连接模块化,即使我随时随地都需要它也能运行一次。如何将其导出?

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;

在我的情况下,我不需要将它分配给任何变量,并希望它在运行中执行。可能的?

1 个答案:

答案 0 :(得分:0)

require()返回模块导出的内容。它可以是Objectfunction,也可以是StringNumber。它通常是Objectfunction。例如,var server = require('http')会返回Object,其中包含Server()方法(您可以在代码示例的第一行调用)。真的,这取决于包的作者。

您的代码对我来说似乎没问题。 socket.io被分配给变量,因为这是您稍后引用它的方式。 io.on('connection', ...)实际上只被调用一次。这将等待连接,每次发生连接事件时,都会调用function(client) {...}。此实现没有重大性能问题。