You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
50 lines
1.5 KiB
//Utilisation de express/dotenv
|
|
const express = require('express');
|
|
const userRoutes = require('./routes/user.routes');
|
|
const postRoutes = require('./routes/post.routes');
|
|
const bodyParser = require('body-parser');
|
|
const cookieParser = require('cookie-parser');
|
|
require('dotenv').config({path: './config/.env'});
|
|
require('./config/db.js');
|
|
const {checkUser, requireAuth} = require('./middleware/auth.middleware');
|
|
const cors = require('cors');
|
|
|
|
const app = express();
|
|
|
|
//autorise tout le monde à faire des requetes
|
|
//app.use(cors());
|
|
//autorise seulement les client à effectuer des requetes
|
|
const corsOptions = {
|
|
origin: process.env.CLIENT_URL,
|
|
credentials: true,
|
|
'allowedHeaders': ['sessionId', 'Content-Type','Authorization'],
|
|
'exposedHeaders': ['sessionId'],
|
|
'methods': 'GET,HEAD,PUT,PATCH,POST,DELETE',
|
|
'preflightContinue': false
|
|
}
|
|
app.use(cors(corsOptions));
|
|
|
|
//prend la requete et la rend au bon format
|
|
app.use(bodyParser.json());
|
|
app.use(bodyParser.urlencoded({extended: true}));
|
|
//permet de lire les cookies
|
|
app.use(cookieParser());
|
|
|
|
//jwt
|
|
app.get('*', checkUser);
|
|
app.get('/jwtid', requireAuth, (req, res) => {
|
|
res.status(200).send(res.locals.user._id);
|
|
});
|
|
|
|
|
|
//routes
|
|
//toutes les routes qui vont avoir un lien avec le user
|
|
app.use('/api/user', userRoutes);
|
|
//toutes les routes en lien avec le post
|
|
app.use('/api/post', postRoutes);
|
|
|
|
//server
|
|
//process.env.PORT (récupérer la variable PORT)
|
|
app.listen(process.env.PORT, () => {
|
|
console.log(`Listening on port ${process.env.PORT}`);
|
|
}) |