mirror of
https://github.com/guilhermewerner/chat
synced 2025-06-16 11:24:19 +00:00
Add DotEnv
This commit is contained in:
@ -12,6 +12,7 @@
|
|||||||
"dev": "nodemon src/server.js"
|
"dev": "nodemon src/server.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"dotenv": "^8.2.0",
|
||||||
"ejs": "^3.1.3",
|
"ejs": "^3.1.3",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"socket.io": "^2.3.0"
|
"socket.io": "^2.3.0"
|
||||||
|
@ -1,110 +1,110 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Chat</title>
|
<title>Chat</title>
|
||||||
|
|
||||||
<!-- Include Meta -->
|
<!-- Include Meta -->
|
||||||
|
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
|
|
||||||
<!-- Include Styles -->
|
<!-- Include Styles -->
|
||||||
|
|
||||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"
|
||||||
integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
|
integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="header">
|
<div id="header">
|
||||||
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<a class="navbar-brand" href="/">Chat</a>
|
<a class="navbar-brand" href="/">Chat</a>
|
||||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||||
<ul class="navbar-nav mr-auto">
|
<ul class="navbar-nav mr-auto">
|
||||||
<!--
|
<!--
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="#">Link</a>
|
<a class="nav-link" href="#">Link</a>
|
||||||
</li>
|
</li>
|
||||||
-->
|
-->
|
||||||
</ul>
|
</ul>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</nav>
|
||||||
</nav>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="main">
|
<div id="main">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="pt-4">
|
<div class="pt-4">
|
||||||
<form id="chat">
|
<form id="chat">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="exampleInputEmail1">Username</label>
|
<label for="exampleInputEmail1">Username</label>
|
||||||
<input type="text" class="form-control" name="username">
|
<input type="text" class="form-control" name="username">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="exampleInputPassword1">Message</label>
|
||||||
|
<textarea class="form-control" rows="5" name="message"></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="text-right">
|
||||||
|
<button type="submit" class="btn btn-primary">Submit</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="pt-4">
|
||||||
|
<div class="card">
|
||||||
|
<ul class="list-group list-group-flush" id="messages">
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
|
||||||
<label for="exampleInputPassword1">Message</label>
|
|
||||||
<textarea class="form-control" rows="5" name="message"></textarea>
|
|
||||||
</div>
|
|
||||||
<div class="text-right">
|
|
||||||
<button type="submit" class="btn btn-primary">Submit</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div class="pt-4">
|
|
||||||
<div class="card">
|
|
||||||
<ul class="list-group list-group-flush" id="messages">
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Include JavaScript -->
|
<!-- Include JavaScript -->
|
||||||
|
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
|
||||||
|
|
||||||
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
|
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
|
||||||
integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
|
integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
|
||||||
crossorigin="anonymous"></script>
|
crossorigin="anonymous"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
|
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
|
||||||
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
|
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
|
||||||
crossorigin="anonymous"></script>
|
crossorigin="anonymous"></script>
|
||||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"
|
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"
|
||||||
integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI"
|
integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI"
|
||||||
crossorigin="anonymous"></script>
|
crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var socket = io('http://localhost:3000');
|
var socket = io('http://localhost:3333');
|
||||||
|
|
||||||
function renderMessage(message) {
|
function renderMessage(message) {
|
||||||
$('#messages').append(`<li class="list-group-item"><strong>${message.author}:</strong> ${message.content}</li>`);
|
$('#messages').append(`<li class="list-group-item"><strong>${message.author}:</strong> ${message.content}</li>`);
|
||||||
}
|
}
|
||||||
|
|
||||||
socket.on('previousMessages', function (messages) {
|
socket.on('previousMessages', function (messages) {
|
||||||
for (message of messages) {
|
for (message of messages) {
|
||||||
|
renderMessage(message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
socket.on('receiveMessage', function (message) {
|
||||||
renderMessage(message);
|
renderMessage(message);
|
||||||
}
|
});
|
||||||
});
|
|
||||||
|
|
||||||
socket.on('receiveMessage', function (message) {
|
$('#chat').submit(function (event) {
|
||||||
renderMessage(message);
|
event.preventDefault();
|
||||||
});
|
|
||||||
|
|
||||||
$('#chat').submit(function (event) {
|
var author = $('input[name=username]').val();
|
||||||
event.preventDefault();
|
var content = $('textarea[name=message]').val();
|
||||||
|
|
||||||
var author = $('input[name=username]').val();
|
if (author.length && content.length) {
|
||||||
var content = $('textarea[name=message]').val();
|
var messageObj = { author, content }
|
||||||
|
}
|
||||||
|
|
||||||
if (author.length && content.length) {
|
renderMessage(messageObj);
|
||||||
var messageObj = { author, content }
|
|
||||||
}
|
|
||||||
|
|
||||||
renderMessage(messageObj);
|
socket.emit('sendMessage', messageObj);
|
||||||
|
})
|
||||||
socket.emit('sendMessage', messageObj);
|
</script>
|
||||||
})
|
</body>
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
</html>
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
require('dotenv/config');
|
||||||
|
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
|
||||||
@ -36,5 +38,5 @@ io.on('connection', socket => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
server.listen(3000, () =>
|
server.listen(3000, () =>
|
||||||
console.log(`Server listen on port: 3000`)
|
console.log(`Server listen on port: 3333`)
|
||||||
);
|
);
|
||||||
|
@ -411,6 +411,11 @@ dot-prop@^5.2.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-obj "^2.0.0"
|
is-obj "^2.0.0"
|
||||||
|
|
||||||
|
dotenv@^8.2.0:
|
||||||
|
version "8.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
|
||||||
|
integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
|
||||||
|
|
||||||
duplexer3@^0.1.4:
|
duplexer3@^0.1.4:
|
||||||
version "0.1.4"
|
version "0.1.4"
|
||||||
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
|
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
|
||||||
|
Reference in New Issue
Block a user