Node Atlas NodeAtlas

Le Framework JavaScript Serveur Évolutif

  • Mise en place Simple

    Au point avec HTML & CSS ?
    Débutant en JavaScript ?

    Réalisez rapidement des sites vitrines multilingues sans effort avec l'utilisation de routes, vues ou variations.

  • Site vivant et Évolutif

    Expert en JavaScript client ?
    Prêt à embrasser Node.js ?

    Améliorer progressivement votre base à mesure de vos besoins en utilisant des contrôleurs, modèles ou modules.

  • Partie Cliente Agnostique

    Déjà vos habitudes Front-end ?
    Habitué(e) du Data Binding ?

    Du léger Vanilla au simple jQuery en passant par Vue, Angular ou React : utiliser vos bibliothèques clientes favorites !

Anatomie du webconfig

Le webconfig est ce qui permet de piloter NodeAtlas et décider si vous ne souhaiter ne vous servir que de vue, que de contrôleur, si vous avez besoin de variation, si vous avez besoin d'activer les requêtes PUT/DELETE, etc. Sans lui, NodeAtlas se lance en tant que Simple Serveur Web. Voici la liste complète des paramètres d'un webconfig sachant qu'ils sont tous facultatifs en fonction de vos besoins.

.webconfig

Object{
    "assetsCopy": Boolean,
    "assetsRelativePath": String<path-from-root>,
    "bundles": (String<filepath-from-root> | Object{
        "javascripts": Object{
        ... url: Array.String<filepath-from-assets>
        },
        "stylesheets": Object{
        ... url: Array.String<filepath-from-assets>
        }
    }),
    "cache": Boolean,
    "charset": String,
    "controller": String<filepath-from-controllers>,
    "controllersRelativePath": String<path-from-root>,
    "delete": Boolean,
    "engine": String,
    "index": Boolean,
    "get": Boolean,
    "headers": Object,
    "htmlGenerationBeforeResponse": Boolean,
    "httpHostname": String,
    "httpPort": Number,
    "httpSecure": (String<filepath-from-root> | Boolean),
    "httpSecureKeyRelativePath": String<filepath-from-root>,
    "httpSecureCertificateRelativePath": String<filepath-from-root>,
    "injectCss": (String<filepath-from-assets> | Array.String<filepath-from-assets>),
    "imgOptimizationsBeforeResponse": Boolean,
    "imgOptimizationsEnable": Boolean,
    "jsBundlingBeforeResponse": Boolean,
    "jsBundlingEnable": Boolean,
    "languageCode": String,
    "less": (Boolean | Object{
        "autoprefix": Boolean,
        "compress": Boolean,
        "files": (String<filepath-from-root> | Array.String<filepath-from-assets>),
        "paths": Array.String<path-from-assets>,
        "sourceMap": Boolean
    }),
    "middlewares": (String<filepath-from-middlewares> | Array.String<filepath-from-middlewares>),
    "middlewaresRelativePath": String<path-from-root>,
    "mimeType": String,
    "optimizations": (String<filepath-from-root> | Object{
        "gif": Object,
        "images": Object{
        ... url: String<filepath-from-assets>
        },
        "jpg": Object,
        "png": Object,
        "svg": Object
    },
    "options": Boolean,
    "output": Boolean,
    "post": Boolean,
    "pug": Boolean,
    "put": Boolean,
    "routes": (String<filepath-from-root> | Object{
    ... "(String</url> | String<key>)": String<filepath-from-views> | NA<routeParameter>)
    } | Array.NA<routeParameter>,
    "serverlessRelativePath": String<path-from-root>,
    "session": Object,
    "staticOptions": Object<from-express-statics-options>,
    "statics": String<filepath-from-root> | Object{
    ... /virtual: (String<path-from-root> | Object{
            "path": String<path-from-root>,
            "staticOptions": Object<from-express-statics-options>
        })
    } | Array.Object{
        "path": String<path-from-root>,
        "staticOptions": Object<from-express-statics-options>,
        "virtual": String<urlpath-from-base>
    },
    "cssBundlingBeforeResponse": Boolean,
    "cssBundlingEnable": Boolean,
    "socketClientFile": String<urlpath-from-base>,
    "socketServerOptions": Object<from-socketio-server-options>,
    "stylus": (Boolean | Object{
        "autoprefix": Boolean,
        "compress": Boolean,
        "files": (String<filepath-from-root> | Array.String<filepath-from-assets>),
        "paths": Array.String<path-from-assets>,
        "sourceMap": Boolean,
    }),
    "templateEngineDelimiter": String,
    "urlHostname": String,
    "urlPort": Number,
    "urlRelativeSubPath": String<urlpath-from-root>,
    "variation": String<filepath-from-variations>,
    "variationsRelativePath": String<path-from-root>,,
    "version": String<xx.xx.xx>,
    "view": String<filepath-from-views>,
    "viewsRelativePath": String<path-from-root>
}

.routeParameters

Object{
    "charset": String,
    "controller": String<filepath-from-controllers>,
    "delete": Boolean,
    "get": Boolean,
    "headers": Object,
    "injectCss": (String<filepath-from-assets> | Array.String<filepath-from-assets>),
    "key": String,
    "middlewares": (String<filepath-from-middlewares> | Array.String<filepath-from-middlewares>),
    "mimeType": String,
    "options": Boolean,
    "output": (String<filepath-into-serverless> | Boolean<false>),
    "post": Boolean,
    "put": Boolean,
    "redirect": (String<urlpath-from-base | url>),
    "statusCode": Number,
    "url": String<urlpath-from-base>,
    "variation": String<filepath-from-variations>,
    "view": String<filepath-from-views>
}