[英]Socket.io.js not found (node.js + express + socket.io)
[英]socket.io/socket.io.js - not found. Node.js, express.js and socket.io app
我收到错误消息,指出无法加载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问题时。 我的代码有什么问题吗? 我应该怎么做才能使此东西正常工作?
在终端中运行npm update
解决此问题吗? (您可能需要使用sudo或等效权限以提升的特权运行它)
使用Node.js运行应用程序时,它不会自动安装依赖项。 您需要使用NPM(节点程序包管理器)。 他们是一个更新命令。 在包含package.json
文件的目录中,运行以下命令:
npm update
您可能需要提升的特权。 这是在Mac OS X / Linux上的样子:
sudo npm update
您在那里,让我在您的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);
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.