1.1.16 • Published 10 months ago

@dudojs/meen v1.1.16

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

@dudojs/meen

Awesome NodeJS stack (M.E.E.N = MongoDB + ExpressJS + EdgeJS + NodeJS)

Methods

composeApp

/**
 * Compose an app. You can compose website or api app with built-in modules via `options` or your own fully-customised app by passing modules via `modules`
 * @param {String} appName Your app name
 * @param {Array<Function>} modules Module must be function with first param is `app` as Express App Instance and second param is `config`
 */
composeApp(appName, modules);

Note: Order of configuration as the following:

  1. Default
  2. @local/config/app.js (will be loaded if available)
  3. {appName}/config/app.js (will be loaded if available)

Note 2: Other files in {appName}/config/app.js will be load as properties of app.config. Such as icon.js will be available in app.config.icon.

Built-in modules

Each module has its own config same as its name. Example: publicFolder module will use publicFolder in config

Modules list:

Presets

MEEN provides presets for app types via config.app.preset. Order of modules will be loaded as specified in below

website:

  1. compression
  2. publicFolder
  3. view
  4. session
  5. bodyParser
  6. mongoose
  7. morgan

api:

  1. cors
  2. bodyParser
  3. mongoose
  4. morgan

Default configuration

const { resolvePath } = require('@dudojs/utils');
const en = require('./locale/en');
const vi = require('./locale/vi');

module.exports = {
    lang: 'en',
    locales: {
        en,
        vi,
    },
    preset: null,
    loadLocalPackage: {
        enabled: false,
    },
    info: {
        title: 'M.E.E.N',
        version: '1.0.0',
    },
    mongoose: {
        debug: false,
        options: {
            useNewUrlParser: true,
            useUnifiedTopology: true,
        },
    },
    logger: {
        level: 'info',
        logFile: false,
    },
    cors: '*',
    session: {
        secret: 'M.E.E.N',
        maxAge: 7 * 24 * 60 * 60 * 1000,
    },
    publicFolder: {
        path: {
            '/public': resolvePath('public'),
        },
        debug: false,
    },
    view: {
        minify: false,
        cache: false,
    },
    handleError: {
        enabled: true,
        isJson: false,
    },
    bodyParser: {
        json: {
            limit: '5mb',
        },
        urlencoded: {
            limit: '5mb',
            extended: true,
        },
    },
    bruteForce: {
        mongoStore: true,
        collectionName: 'BRUTE_FORCE',
        maxRequest: 60,
        limitTime: 60 * 1000,
    },
    paginator: {
        itemPerPage: 20,
        pageStep: 2,
    },
};

License

Please read at here

1.1.16

10 months ago

1.1.15

10 months ago

1.1.9

2 years ago

1.1.8

2 years ago

1.1.10

2 years ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.3

2 years ago

1.1.2

3 years ago

1.1.0

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.10

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago