2015-02-02 4 views
1

Ошибка получения файла socket.io/socket.io.js. Я сделал это:socket.io/socket.io.js - не найден. Node.js, express.js и socket.io app

/** 
* 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" 
    } 
} 

Я установил Socket.io с НПМ, все файлы находятся в каталоге node_modules. Я попытался скопировать файл socket.io.js в/public, но также есть ошибка. Я пытался решить эту проблему разными способами - с документами socket.io, учебником чата и сообщением StackOverflow. Каждый раз, когда я пытаюсь решить проблему socket.io, возникает проблема. Что-то не так в моем коде? Что я должен сделать, чтобы эта работа работала правильно?

+0

В '.listen (express)' 'express' не является сервером. –

+0

большое спасибо. Я меняю файл .listen (express) на .listen (приложение), и теперь он отлично работает! –

+0

Мне очень жаль, я не заглянул в ваш комментарий, поэтому ответил внизу. @AlanSobieraj – NarendraSoni

ответ

0

Пробег npm update в терминале исправить это? (Возможно, вам потребуется запустить его с повышенными привилегиями с помощью sudo или аналогичного)

При запуске приложения с Node.js он не устанавливает автоматически зависимости. Вам нужно будет использовать NPM (менеджер пакетов Node). Это команда обновления. В директории с файлом package.json, выполните следующее:

npm update 

может потребоваться повышенные привилегии. Это то, что это выглядит как на Mac OS X/Linux:

sudo npm update 
0

Вы очень много там, позвольте мне изменить кое-что в вашем app.js. Попробуйте прямо сейчас.

var express = require('express') 
    , routes = require('./routes'); 

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); 

var server = app.listen(3000, function(){ 
    console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env); 
}); 
var io = require("socket.io").listen(server); 

io.on("connection",function(socket){ 
    console.log("Application connected"); 

    socket.on('disconnect',function(){ 
     console.log("Application Disconnected"); 
    }); 

    socket.on('ABC Event',function(value){ 
     console.log("ABC event catched from client value passed is :"+value); 
     //do something 
     io.emit('new event',passSomeJSONtoClient); 
    }); 

}); 
Смежные вопросы