68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
const http = require('http');
|
|
const url = require('url');
|
|
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,
|
|
});
|
|
|
|
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);
|
|
});
|
|
}
|
|
|
|
|