0
我試圖弄清楚如何從node.js + socket.io應用程序的前端訪問數據。使用「Heroku的日誌 - 尾」(實況記錄),我得到一個即時響應,我把東西在輸入後點擊提交:使用node.js + socket.io + express/ejs將數據從客戶端傳遞到服務器
debug: xhr-polling received data packet 5:::{"name":"data","args":[{"hash":"<whatever I put in the input"}]}
但我無法訪問它來記錄它。下面的console.log行永遠不會執行。
繼承人;後端server.js
app.get('/', function(req, res){
res.render('index.ejs', {
layout:false,
locals: {
someVariable: "blah"
}
});
// Get Form Data
io.sockets.on('data', function(data) {
console.log("heres the hash " + data.hash);
});
而這在我的前端
<form>
<span class="label">#</span><input type="text" name="hashtag" id="hashtag" placeholder="hashtag">
<input type="submit" id="submit" value="Roll em in!">
</form>
<script>
var socket = io.connect();
$('#submit').on('click', function(event) {
event.preventDefault();
alert('clicked!');
socket.emit('data', {
hash: $('#hashtag').val()
});
});
</script>
做客戶的'io.connect ()'實際上有服務器地址和端口? –
是的應用程序中的其他所有東西都可以工作,只需粘貼很多東西,我只需粘貼必要的片段即可。這裏是我的腳本的頂部: VAR UTIL =需要( 'UTIL'), HTTP =需要( 'HTTP'), 表達=需要( '表達'), EJS =需要( 'EJS'), app = express(); var port = process.env.PORT || 3000; var server = app.listen(port); var io = require('socket.io')。listen(server); //用於heroku上 io.configure(函數(){ io.set( 「運輸」,[ 「XHR輪詢」]); io.set( 「輪詢持續時間」,10); }); – Zack
沒有意識到它會粘貼沒有回報,新的在這裏,對不起。 – Zack