javascript - 使用node.js require加载模块

标签 javascript node.js express socket.io

我正在使用 expressjade 框架构建一个 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_iox.js文件下面的任何地方都没有使用,但模块没有加载。如果我将行 var socket_io = require('socket.io'); 添加到 app.js 一切正常。我调查了这个SO question但没有成功。 有人可以解释为什么会发生这种情况以及我做错了什么吗?

编辑:只是为了澄清我已将“socket.io”添加到 package.json 文件中。还使用 npm install (-g) socket.io 命令在全局和本地安装了 socket.io

最佳答案

这并不是试图回答所提出的问题,而是在评论中向我提出的进一步问题。理想情况下,我会在评论中回答它,但觉得视觉方面可以更好地解释。
folder structure
我的应用程序中有这样的文件夹结构,MVC 类型结构。 controllers/ 文件夹包含业务逻辑。 models/ 文件夹包含我的模型。路线文件夹包含routes/views/文件夹包含我的jade模板。

关于javascript - 使用node.js require加载模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30138701/

相关文章:

javascript - 在 MongoDB 查询中使用 javascript 变量作为 $regex 的值

javascript - Chart js v2 工具提示回调换行符

javascript - document.getElementById ('ID' ).style.cursor 没有按预期工作

javascript - 如何使用 React Router 在 React 中不闪烁地重定向?

node.js - NodeJS 异步回调未完成和渲染 Handlebars 模板

node.js - 带有 node.js 机器人框架的 Skype 语音识别 API

node.js - 模板字符串中不允许使用八进制转义序列

JavaScript 测试简单模块

node.js - 成功付款重定向后,NodeJS Express session 变空

javascript - ReactJS ExpressJS如何设置代理?代理不适用于 localhost :3000,,但适用于 localhost:3000/test