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) 做啥?的主要内容,如果未能解决你的问题,请参考以下文章

nodejs require 语句中的 const 与 var

socket.Io的简单使用

require_once() [function.require]: 无法打开所需的 '/vars.inc' (include_path='.;C:\php5\pear')

有没有办法找到所有使用 var 和 require 的情况,并用 const 替换那些结果?

从'../components/App'导入应用程序有啥区别;和 var App = require('../components/App');?

PHP警告:require_once(/var/www/html/wp-config.php):无法打开流:第37行/var/www/html/wp-load.php中的权限被拒绝