var io = require('../..')(server) 做啥?

Posted

技术标签:

【中文标题】var io = require(\'../..\')(server) 做啥?【英文标题】:what does var io = require('../..')(server) do?var io = require('../..')(server) 做什么? 【发布时间】:2014-08-31 08:50:58 【问题描述】:

我已经在本地构建了项目https://github.com/Automattic/socket.io/tree/master/examples/chat,它运行良好。不过,最好能多了解一下套接字应用程序的工作原理。

在主启动脚本中,使用 require 引入的模块之一是

var io = require('../..')(server)

require('../..') 是做什么的?

谢谢!

【问题讨论】:

This question 有一些关于 require 的资源链接。 【参考方案1】:

当一个目录的路径被赋予require 时,它会隐式地在该目录中寻找index.js

在这种情况下,它相当于

var socket = require("../../index.js");
var io     = socket(server);

在提供的示例中,他们只是使用了一些速记并丢弃了调用 require 返回的中间值。

查看module.require docs 了解更多信息。

【讨论】:

我不明白为什么我们需要 index.js。我们在 index.js 里面。【参考方案2】:

在这里,在您的代码中

要求('../..');

从路径中添加File,使用了SOCKET.IO,可以看到没有添加Socket.io模块。

此外,如果没有为文件或文件夹提供特定路径,Module require 将尝试加载 index.jsindex.node。如果不存在这样的文件,则会报错。

【讨论】:

以上是关于var io = require('../..')(server) 做啥?的主要内容,如果未能解决你的问题,请参考以下文章