[英]Can we use socket.io with ejs(embedded javascript) instead of html page in Node JS application?
[英]How to use socket.io with only EJS without JS code?
這是我在EJS中的代碼,它基於某些參數從我的節點服務器實時接收數據。
<!DOCTYPE html>
<html lang="en">
<head>
<% include ../partials/head %>
</head>
<body class="container">
<header>
<% include ../partials/header %>
</header>
<main>
<script src="/socket.io/socket.io.js"></script>
<table cellpadding="2" cellspacing="2" border="0" width="100%" align="center">
<thead>
<tr>
<th>Name</th>
<th>IsOnline</th>
<th>Location</th>
</tr>
</thead>
<tbody id="tableData"></tbody>
</table>
<script type="text/javascript">
var socket = io();
socket.on('status', function(data){
var k = '<tbody>'
for(i = 0;i < data.length; i++){
k+= '<tr>';
k+= '<td>' + data[i].url + '</td>';
k+= '<td align="justify">' + data[i].name + '</td>';
k+= '<td align="justify" width="30%">' + data[i].status + '</td>';
k+= '<td align="justify" width="30%">' + data[i].loc + '</td>';
k+= '</tr>';
}
k+='</tbody>';
document.getElementById('tableData').innerHTML = k;
});
</script>
</main>
<footer>
<% include ../partials/footer %>
</footer>
</body>
</html>
這段代碼可以正常工作,但是我有兩個問題:
Offline
,為紅色,否則為綠色。 res.render()
或ejs.compile()
發送數據 以下對我有用:
for(i = 0;i < data.length; i++){
var color = data[i].status === "Offline" ? "red" : "green"; // If status is 'Offline', use red. If not use green
k+= '<tr>';
k+= '<td>' + data[i].url + '</td>';
k+= '<td align="justify">' + data[i].name + '</td>';
k+= '<td align="justify" width="30%" style="color: ' + color + '">' + data[i].status + '</td>';
k+= '<td align="justify" width="30%">' + data[i].loc + '</td>';
k+= '</tr>';
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.