Node.js 找不到 socket.io - 得到 404

Posted

技术标签:

【中文标题】Node.js 找不到 socket.io - 得到 404【英文标题】:Node.js can't find socket.io - getting 404 【发布时间】:2014-05-26 15:30:03 【问题描述】:

这方面已经有很多线程了,我浏览了其中的一些,但由于某种原因,我无法让我的应用程序正常工作。我正在使用具有以下依赖项的节点是 package.json:


"name": "",
"version": "0.0.1",
"description": "test app",
"dependencies": 
    "socket.io": "~0.9.6",
    "mime": "~1.2.7",
    "express": "3.x"


我用 npm 安装没问题。在我的 server.js 中,我有:

var dp = require('./custom_modules/dataProcessing');
var express = require('express');
var http = require('http');

var app = express();

var server = http.createServer(app).listen(3000, function()
  console.log('Express server listening on port 3000');
);

dp.listenToVisitorActivities(server);
// serve static content
app.use(express.static(__dirname + '/public'));

现在,对于 dp,它是我在目录 custom_modules/dataProcessing.js 中的自定义模块 在里面(除了所有其他逻辑)我有类似的东西:

var socket = require('socket.io');
var fs = require('fs');

var listenToVisitorActivities = function(server) 
var io = socket.listen(server);
//...


exports.listenToVisitorActivities = listenToVisitorActivities;

最后我有一些 html,在 head 部分包含以下脚本:

src="/socket.io/socket.io.js"

src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"

src="/javascript/webtracker.js" type="text/javascript"

包含的 webtracker.js 有以下行:

 var socket = io.connect();

jquery 和 webtracker 文件加载良好,静态 html 页面也是如此。我为 socket.io 得到 404。尝试了很多东西,包括:

http://***.com/questions/19614512/socket-io-socket-io-js-404-not-found
http://***.com/questions/16981396/get-http-localhost3000-socket-io-socket-io-js- 
404-not-found

等等。但还是不行。请帮忙。

【问题讨论】:

您在 server.js 文件中的哪里定义了 socket.io 模型? 【参考方案1】:

您可以尝试以下方法吗?这将确保您获得 socket.io 模块。

'use strict';
module.exports = function(Activities) 
var socket = require('socket.io');
var fs = require('fs');

Activities.listenToVisitorActivities = function(server) 
var io = socket.listen(server);
//...

;

【讨论】:

以上是关于Node.js 找不到 socket.io - 得到 404的主要内容,如果未能解决你的问题,请参考以下文章

无法获取 socket.io.js

节点 js 错误:找不到模块 './lib/socket.io'

Heroku 说:找不到模块'socket.io'

node.js、socket.io 和 SSL

如何将二进制数据从 Node.js socket.io 服务器发送到浏览器客户端?

node.js/typescript 找不到本地模块