我正在使用 express 和 jade 框架构建一个 node.js 应用程序。该应用程序具有标准骨架,这就是主目录的样子:
- app.js
- 垃圾箱
- npm-debug.log
- 观看次数
- Node 模块
- package.json
- 公开
当我尝试在 public 目录中的 js 文件(名为 x.js)中加载 socket.io 模块时,就会出现问题。这就是我实现一些与用户操作事件处理紧密相关的逻辑的地方。换句话说,当有人点击“连接”按钮时,我想使用 socket.io 建立连接。问题是当我添加这一行
var socket_io = require('socket.io');在 x.js 中(x.js 位于/public 目录中)
整个功能突然停止工作,我猜是因为尽管var socket_io在x.js文件下面的任何地方都没有使用,但模块没有加载。如果我将行 var socket_io = require('socket.io'); 添加到 app.js 一切正常。我调查了这个SO question但没有成功。 有人可以解释为什么会发生这种情况以及我做错了什么吗?
编辑:只是为了澄清我已将“socket.io”添加到 package.json 文件中。还使用 npm install (-g) socket.io 命令在全局和本地安装了 socket.io。
最佳答案
这并不是试图回答所提出的问题,而是在评论中向我提出的进一步问题。理想情况下,我会在评论中回答它,但觉得视觉方面可以更好地解释。
我的应用程序中有这样的文件夹结构,MVC 类型结构。 controllers/
文件夹包含业务逻辑。 models/
文件夹包含我的模型。路线文件夹包含routes/
,views/
文件夹包含我的jade模板。
关于javascript - 使用node.js require加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30138701/