Node Atlas NodeAtlas

The Progressive Server-side JavaScript Framework

  • Simple set-up

    You know HTML & CSS?
    But not JavaScript?

    Quickly create multilingual websites effortlessly with simple routes, views or variations.

  • Scalable website

    JavaScript client-side Expert?
    Ready to embrace Node.js?

    Gradually improve your base as you need by using controllers, models or modules.

  • Agnostic client side

    Already your Front-end habits?
    You use Data Binding?

    From Vanilla to jQuery and going through Vue, Angular or React: use your favorite tools!

Webconfig's Anatomy

The webconfig is that allows you to drive how NodeAtlas will work. If you want to use views or controllers, or if you need some variations if you want to enable PUT / DELETE HTTP request, etc. Without webconfig, NodeAtlas run in Simple Web Server. This is the complete list of parameters of a webconfig. Each is optional depends on your needs.

<NA>.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[removedFromV2.0.2]": Boolean,
    "imgOptimizationsEnable[removedFromV2.0.2]": 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[removedFromV2.0.2]": (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>
}

<NA>.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>
}