Я создаю приложение с socket.io node.js и express. js и запускаю серверные сценарии в файле с именем app. js. Для моих клиентских скриптов на данный момент у меня есть только одно представление, поэтому я создал тег скрипта giganti c непосредственно на странице HTML, однако я предполагаю, что у меня будет больше, чем только одно представление, и для поддержания чистоты я бы хотел бы иметь внешние клиентские файлы.
Пока проект выглядит следующим образом
Приложение. js файл
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }))
app.get('/', function (req, res) {
res.sendFile(__dirname + '/public/views/index.html');
});
io.on('connection', function(socket){
console.log('user connected')
socket.on('connection tried', function (name) {
if(!find(name)){
userlist.push(name);
socket.broadcast.emit(' connection message', name + "has connected");
}
else
socket.emit('error','username');
})
});
function find(name){
for( let i=0; i<userlist.length; i++){
if(userlist[i]==name)
return true;
}
return false;
}
server.listen(3000);
index. html файл
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Global.io</title>
<link type="text/css" rel="stylesheet" href="/styles/index.css">
<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
$(function () {
var socket = io()
$('#formElem').submit(function (e) {
e.preventDefault();
socket.emit('connection tried', $('#name').val());
return false;
})
socket.on('error', function (error) {
})
socket.on('connection message', function (message) {
})
});
</script>
</head>
<body>
<h1>Start debating about the change</h1>
<div id="'wrapper">
<dev id="'steps">
<form id="formElem" >
<input id='name' type="text" name="user" placeholder="User name">
<button type="submit">Submit</button>
</form>
</dev>
</div>
</body>
</html>
I Хотелось бы узнать, как поместить то, что находится в теге скрипта, в файл. js, потому что просто вставка копии не будет работать. Кроме того, как мне удается иметь более одного клиентского файла?