这让我很疯狂...虽然我有一个工作版本的Express + Socket.io,但我似乎无法在新项目文件夹中通过 out-of-the-box 的NPM安装复制它。有人能指出我错过了什么吗?我的步骤如下:
我在我的项目目录(pwd)中创建一个node_modules文件夹,然后执行:
最终,我运行服务器脚本并在Web浏览器中打开应用程序。我的静态公共文件都被正确提供,但是
我在我的项目目录(pwd)中创建一个node_modules文件夹,然后执行:
npm install express
npm install socket.io
运行这两个命令会将包放置在我的项目的node_modules
文件夹中,就像预期的那样。现在我使用以下方式设置了我的服务器:
var express = require('express'),
server = express.createServer().use( express.static(__dirname+'./public') ).listen( 8080 ),
io = require('socket.io').listen(server);
我的 public
文件夹包含了我的应用程序的静态资产。我的公共索引 HTML 页面包括了一个脚本标签:
<script src="/socket.io/socket.io.js"></script>
最终,我运行服务器脚本并在Web浏览器中打开应用程序。我的静态公共文件都被正确提供,但是
/socket.io/socket.io.js
返回404错误。现在,我可以从另一个旧项目中切换到一个express
包并让整个系统工作。不知何故,该软件包实例被配置不同,但我无法弄清楚如何复制它。Express网站提到了安装依赖项的问题,尽管运行npm install -d
似乎没有任何帮助(在运行npm install -d
时是否需要特定的pwd
?)。我想我肯定错过了一些重要的东西,关于在使用NPM安装后配置新的Express实例方面。感谢您提供任何见解!