我遵循本教程使用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.json
、index.js
、index.json
或index.node
。
您可以在node.js文档中了解require()
的允许语法。
仅供参考,socket.io网站上有一个聊天室演示。