【问题标题】:Using Socket.io with Node.js, Express and Jade将 Socket.io 与 Node.js、Express 和 Jade 一起使用
【发布时间】:2014-04-25 14:51:17
【问题描述】:

我在使用 Socket.io 时遇到了一些麻烦,即使只是为了测试客户端是否已连接。我已经尝试了很多事情,我认为我的错误可能是当我执行 app.get 函数时。我也尝试在路由 js 文件中执行此操作,但也不是结论性的。所以这是我的不同代码:

App.js

/**
 * Module dependencies.
 */

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var mongo = require('mongodb');
var monk = require('monk');
var db = monk('mongodb://xxxxx:xxxxx@ds051067.mongolab.com:51067/jdo');

var app = express(), 
    server = http.createServer(app) ,
    io = require('socket.io').listen(server);

// all environments

app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser('This is secret'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

io.sockets.on('connection', function (socket) {
    console.log('Un client est connecté !');
});

// app.get('/', routes.index);
app.get('/users', user.list);
app.get('/deplacement',routes.deplacement);
app.get('/monCompte', routes.compte);
app.get('/connexion', routes.connexion);
app.get('/', function(req, res) {
    res.render('index.jade');
});


server.listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

索引.jade

    extends layout

    block content

     script(src="/socket.io/socket.io.js").
      var socket = io.connect('http://localhost:3000');
        });

PS : 对不起,如果我的英语不好^^

【问题讨论】:

    标签: javascript node.js sockets express


    【解决方案1】:

    您不能在与包含脚本相同的脚本标记中使用内联 javascript。

    extends layout
    
    block content
    
    script(src="/socket.io/socket.io.js")
    script.
        var socket = io.connect('http://localhost:3000');
    

    【讨论】:

    • 真是个傻瓜,我测试了很多可能性,我什至没有注意到那些孤独的右括号......好吧,这行得通,谢谢:)
    猜你喜欢
    • 2015-11-02
    • 2018-06-02
    • 1970-01-01
    • 2012-12-13
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多