【发布时间】:2015-02-05 15:38:14
【问题描述】:
我收到无法加载 socket.io/socket.io.js 的错误。我做了这个:
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes');
var io = require('socket.io').listen(express);
var app = module.exports = express.createServer();
// Configuration
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.configure('production', function(){
app.use(express.errorHandler());
});
// Routes
app.get('/', routes.index);
app.listen(3000, function(){
console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});
io.on('connection', function(socket){
console.log('a user connected');
});
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
我的 layout.jade 文件如下所示:
doctype html
html
head
title= title
script(src='//code.jquery.com/jquery-1.11.2.min.js')
script(src='/bootstrap/js/bootstrap.min.js')
link(rel='stylesheet', href='/stylesheets/style.css')
link(rel='stylesheet', href='/bootstrap/css/bootstrap.min.css')
script(src='/socket.io/socket.io.js')
script.
var socket = io();
body!= body
和 package.json 文件:
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "2.5.8",
"jade": ">= 0.0.1",
"socket.io": "^1.3.2"
}
}
我用 npm 安装了 socket.io,所有文件都在 node_modules 目录中。我试图将 socket.io.js 文件复制到 /public 但也有错误。我尝试通过多种方式解决这个问题——使用 socket.io 文档、聊天教程和 StackOverflow 帖子。每次当我尝试你的 socket.io 问题时都会发生。我的代码有什么问题吗?我应该怎么做才能让这个东西正常工作?
【问题讨论】:
-
在
.listen(express)中,express不是服务器。 -
非常感谢。我将 .listen(express) 更改为 .listen(app),现在它可以正常工作了!
-
很抱歉,我没有看你的评论,所以在底部回答。 @AlanSobieraj
标签: node.js sockets express socket.io