2017-07-17 7 views
0

socket.ioを使用してクライアント側でソケット接続を作成すると、データをexpressアプリに送信する必要があります。しかし、私はこれをしようとすると、active.ejsファイルの参照エラーが発生します。ソケット-idがindex.jsで私のコンソールに記録されているのでしかし、私はこれは、クライアント側のHTML(EJS)であるejsファイルのソケットに接続できません。参照およびio定義されていないエラー

(私はuser_infoデータを送信するために必要な場所でもある)、成功したソケットに接続されていますページ - これはuser_infoオブジェクトは上記のhtml(EJS)にcontroller.jsから渡される方法です

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Active</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
    <script src="http://localhost:4000/socket.io/socket.io.js"></script> 
    </head> 
    <body> 
    <p> 
     Welcome, 
     <%= user_info.uri %> 
    </p> 
    // REFERENCE ERROR HERE 
    // changing {query: user_info} to just user_info doesn't help either 
    <% var socket = io.connect('http://localhost:4000/tune-in', {query: user_info}); %> 
    </body> 
</html> 

をactive.ejs active.ejs

app.get('/tune-in', function(req, res){ 
    res.render('active', {user_info: user_data}); 
    }); 
ファイル

私はにindex.js active.ejs からuser_infoを送信する必要があるここであなたがuser_infoあなたが現在いる方法でアクセスすることはできません関連index.js

var server = app.listen(process.env.PORT || 4000); 
console.log("Listening to port 4000..."); 
var io = socket(server); 
io.on('connection', function(socket){ 
    // The below log executes and displays a socket id. 
    console.log('Made socket connection', socket.id); 
}); 

答えて

2

です。なし特定を指して、「%<」のためのマッチング終了タグが見つかりませんでした: `エラー - だけで私は今、次のエラーを取得しています、いくつかの理由

<% var socket = io.connect('http://localhost:4000/tune-in', {query: "<%= user_info %>"}); %> 
+0

にこのライン

<% var socket = io.connect('http://localhost:4000/tune-in', {query: user_info}); %> 

を変更ライン。 – Kek

+1

Hmそのコードを '' @Kek – Wright

関連する問題