【发布时间】:2015-05-09 10:17:00
【问题描述】:
我正在使用 express 和 jade 框架构建一个 node.js 应用程序。该应用程序具有标准框架,即它在主目录中的外观:
- app.js
- bin
- npm-debug.log
- 观看次数
- node_modules
- package.json
- 公开
当我尝试将 socket.io 模块加载到 js 文件(称为 x.js)中时,会出现问题public 目录。这就是我实现一些与用户操作事件处理紧密相关的逻辑的地方。所以换句话说,当有人点击“连接”按钮时,我想使用 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。
【问题讨论】:
-
公用文件夹通常用于存放静态文件和样式。在其中包含业务逻辑并不是真正的标准做法。
-
@Craicerjack 感谢您的解释!那我应该在哪里实现业务逻辑呢?
-
@e213n 因为无法以任何方式构建 cmets,所以我使用了一个答案帖子来展示我在项目中使用的示例目录结构
-
等等。我是否正确假设 x.js 是客户端(浏览器)javascript 文件?
标签: javascript node.js express socket.io