【发布时间】:2018-01-08 05:37:48
【问题描述】:
我正在尝试在 Amazon EC2 实例上设置 node、express 和 socket.io。我做了以下。
nvm install 6.11.5 //(node)
npm install express -g
npm install socket.io
npm install socket.io-client
错误:
module.js:471
throw err;
^
Error: Cannot find module 'socket.io-client'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/ec2-user/server/server.js:3:10)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
这是我的 server.js 文件的开头(它在 server/server.js 中)。
var express = require('express');
var io = require('socket.io-client'); <--- this is where error happens
var https = require('https');
var querystring = require('querystring');
如果我这样做npm list socket.io-client
我得到以下信息
myapp@1.0.0 /home/ec2-user/server
├─┬ socket.io@2.0.4
│ └── socket.io-client@2.0.4 deduped
└── socket.io-client@2.0.4
【问题讨论】:
-
您的 server.js 文件是否与您使用 npm install socket.io-client 安装 socket.io-client 的目录位于同一目录中?我注意到您在全局安装了 express,因此可以从任何地方找到它,但我能想到的唯一解释是您没有将 socket.io-client 安装在 server/server.js 文件所在的同一目录中。你能显示一个目录层次结构,同时显示 server.js 和你安装 socket.io-client 的位置吗?
-
我想我明白了。我也永远用。所以我删除了我的forever.log 文件npm clean cache,npm install socket.io-client,npm init,永远重新启动,现在我在express 文件中得到一个错误。所以我认为它是固定的,因为我通过了 socket.io-client 代码行。全部在我的 /server 目录中(不再是全局的)。
-
永远与任何事情有什么关系?在调试这样的核心问题时,您不应该永远开始它,因为它只会妨碍测试。当您完成测试并想要部署时,请永久使用。这个问题有答案吗?一个问题应该以答案结束,或者如果你想通了就删除,但没有有意义的答案可写。
-
感谢永远的建议。我会考虑的。
标签: node.js sockets amazon-ec2 socket.io