registration-js-vanilla/src/server.js
2023-09-11 14:13:41 +03:00

73 lines
1.7 KiB
JavaScript

// server.js
const http = require('http');
const url = require('url');
const fs = require('fs');
const path = require('path');
const mongoose = require('mongoose');
const isAuthenticated = require('./middlewares/auth').isAuthenticated;
const { notFound, methodNotAllowed } = require('./middlewares/responses');
const env = require("./helpers/Env");
const { registerUser, loginUser, logoutUser, userProfile } = require('./controllers/userController');
mongoose.connect(env.get("MONGO_DB_URI"), {
useNewUrlParser: true,
useUnifiedTopology: true,
});
//check if db is connected
mongoose.connection.on('connected', () => {
console.log('Mongoose is connected');
})
const server = http.createServer((req, res) => {
const parsedUrl = url.parse(req.url, true);
if (req.method === 'POST') {
if (parsedUrl.pathname === '/register') {
parseRequestBody(req, (body) => {
req.body = JSON.parse(body);
registerUser(req, res);
});
} else if (parsedUrl.pathname === '/login') {
parseRequestBody(req, (body) => {
req.body = JSON.parse(body);
loginUser(req, res);
});
} else if (parsedUrl.pathname === '/logout') {
logoutUser(req, res);
} else {
notFound(res);
}
} else if (req.method === 'GET') {
if (parsedUrl.pathname === '/profile') {
console.log('profile');
isAuthenticated(req, res, userProfile);
} else {
notFound(res);
}
} else {
methodNotAllowed(res);
}
});
const port = process.env.PORT || 3000;
server.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
function parseRequestBody(req, callback) {
let body = '';
req.on('data', (data) => {
body += data;
});
req.on('end', () => {
callback(body);
});
}