-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
61 lines (52 loc) · 1.52 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import express from "express";
import mongoose from "mongoose";
import cors from "cors";
import { readdirSync } from "fs";
const morgan = require("morgan");
require("dotenv").config();
const app = express();
const http = require("http").createServer(app);
const io = require("socket.io")(http, {
cors: {
origin: "http://localhost:3000",
methods: ["GET", "POST"],
allowedHeaders: ["Content-type"],
},
});
// db
mongoose
.connect(process.env.DATABASE, {
useNewUrlParser: true,
useFindAndModify: false,
useUnifiedTopology: true,
useCreateIndex: true,
})
.then(() => console.log("DB connected"))
.catch((err) => console.log("DB CONNECTION ERROR => ", err));
// middlewares
app.use(express.json({ limit: "5mb" }));
app.use(express.urlencoded({ extended: true }));
app.use(
cors({
origin: [process.env.CLIENT_URL],
})
);
// autoload routes
readdirSync("./routes").map((r) => app.use("/api", require(`./routes/${r}`)));
// socketio
io.on("connect", (socket) => {
// console.log("SOCKET>IO", socket.id);
socket.on("send-message", (message) => {
// console.log("new message received => ", message);
socket.broadcast.emit("receive-message", message);
});
});
io.on("connect", (socket) => {
// console.log("SOCKET>IO", socket.id);
socket.on("new-post", (newPost) => {
// console.log("socketio new post => ", newPost);
socket.broadcast.emit("new-post", newPost);
});
});
const port = process.env.PORT || 8000;
http.listen(port, () => console.log(`Server running on port ${port}`));