Node.js NodeJS Express不提供'/socket.io/socket.io.js';
我正在尝试构建NodeJS/Express/SocketIO应用程序 进口:Node.js NodeJS Express不提供'/socket.io/socket.io.js';,node.js,express,socket.io,Node.js,Express,Socket.io,我正在尝试构建NodeJS/Express/SocketIO应用程序 进口: var express = require('express') , app = express() , server = require('http').createServer(app) , io = require('socket.io').listen(server)... 配置: app.configure(fu
var express = require('express')
, app = express()
, server = require('http').createServer(app)
, io = require('socket.io').listen(server)...
配置:
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
在我的翡翠模板中:
script(type='text/javascript', href='/socket.io/socket.io.js')
但是当我试图在上访问“/socket.io/socket.io.js”时,它不可用
http://localhost:3000/socket.io/socket.io.js
正如它所说:
无法获取/socket.io/socket.io.js
如何从已安装的模块中提供socket.io.js
谢谢您需要将客户端代码从内部Socket.io目录复制到公共目录。在Socket 0.9中,可分发文件的路径是
node_modules/Socket.io/node_modules/Socket.io client/dist
您不必复制任何文件,Socket.io将负责文件的传递
var express = require('express'),
app = new express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server)
出现错误,请使用
script(type='text/javascript', src='/socket.io/socket.io.js')
而不是
script(type='text/javascript', href='/socket.io/socket.io.js')
在Express 3/4中,您可以像这样初始化socket.io:
var io = require("socket.io")(app.listen(80));
我本来打算换一种方式回答,但后来意识到我的项目不使用express。我想你是对的。这不是一个合适的方法。虽然有效,但这是不可取的。Socket.io已经在
/Socket.io/Socket.io.js
上安装了用于拦截和服务请求的结构。上面的代码失败,因为未将express
实例传递到socket.io的listen
函数中。在socket.io 1.2.0中,构建位于node_modues/socket.io/node_modules/socket.io-client/socket.io.jsi控制台告诉我警告:express.createServer()已弃用,express应用程序不再从http.Server继承,…
不过你是对的。正确的流程将在中进一步概述