@dudojs/meen
v1.1.16
Published
Awesome NodeJS stack (M.E.E.N = MongoDB + ExpressJS + EdgeJS + NodeJS)
Downloads
36
Maintainers
Readme
@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:
- Default
@local/config/app.js
(will be loaded if available){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
:
api
:
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