/** * @file Cree le serveur express avec tous les middleware qui vont bien */ import express from 'express'; import bodyParser from 'body-parser'; import favicon from 'serve-favicon'; import morgan from 'morgan'; import path from 'path'; import cors from 'cors'; import schema from './graphql/schema'; import { graphqlExpress, graphiqlExpress } from 'graphql-server-express'; import flash from 'connect-flash'; const server = express(); // on sait pas a quoi ca sert mais il parait que c'est utile server.use(bodyParser.json()); server.use(bodyParser.urlencoded({ extended: true })); // setting up view engine for pug let viewpath = path.resolve('./','src','views'); server.set('views', viewpath); server.set('view engine', 'pug'); // favicon: capital sigma symbol server.use(favicon(path.resolve('./','assets','favicon.ico'))); server.use('/assets',express.static(path.resolve('./','assets'))); // Morgan is middleware for logging requests server.use(morgan('dev')); // Charge le middleware express pour GraphQL server.use('/graphql', bodyParser.json(), cors(), graphqlExpress(req => { let uid; try { uid = "anatole.romon"; //uid = req.session.id; } catch (err) { uid = "1"; } return { schema : schema, context : {user : {id : uid}} }; })); // GraphiQL est une console interactive pour faire des requêtes au schéma GraphQL server.use('/graphiql', graphiqlExpress({endpointURL: '/graphql'})); // connect-flash is middleware for flashing messages server.use(flash()); export default server;