这行代码引用了什么:"var io = require('../..')(server);"?



我遵循本教程使用socket.io创建了一个聊天室:https://github.com/socketio/socket.io.

然后我创建了一个包含聊天室的页面(在教程文件结构中),现在我正试图将其导出到另一个项目中。。。

如果不合并本教程中的所有文件,我似乎无法做到这一点。

我想我已经把问题缩小到聊天index.js页面中的这一行代码:

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

上面的行在教程中引用了什么?我在新项目结构中遇到的错误是:

module.js:339
throw err;
^
Error: Cannot find module '../..'

这里有一个指向index.js文件的链接,该文件包含这行代码:https://github.com/socketio/socket.io/blob/master/examples/chat/index.js

require()接受模块名称或模块路径。

根据require()的node.js文档,其中一个参数选项导致以下情况:

LOAD_AS_DIRECTORY(X)
1. If X/package.json is a file,
   a. Parse X/package.json, and look for "main" field.
   b. let M = X + (json main field)
   c. LOAD_AS_FILE(M)
2. If X/index.js is a file, load X/index.js as JavaScript text.  STOP
3. If X/index.json is a file, parse X/index.json to a JavaScript object. STOP
4. If X/index.node is a file, load X/index.node as binary addon.  STOP

这意味着../..正试图向上进入目录树并从该目录加载package.jsonindex.jsindex.jsonindex.node

您可以在node.js文档中了解require()的允许语法。

仅供参考,socket.io网站上有一个聊天室演示。

相关内容

  • 没有找到相关文章

最新更新