Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dstreet/bento-box
Application framework for Node.js
https://github.com/dstreet/bento-box
Last synced: about 8 hours ago
JSON representation
Application framework for Node.js
- Host: GitHub
- URL: https://github.com/dstreet/bento-box
- Owner: dstreet
- License: mit
- Created: 2015-09-09T12:51:30.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-09-10T20:53:41.000Z (over 9 years ago)
- Last Synced: 2025-01-10T18:40:08.919Z (6 days ago)
- Language: JavaScript
- Homepage:
- Size: 184 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
![Travis CI](https://travis-ci.org/dstreet/bento-box.svg?branch=master)
Bento Box
=========Application framework for Node.js
- Modular
- Extensible
- Stack Agnostic## Overview
The primary purpose of Bento Box is to provide a strong and consistent
application structure with little to no opinion on various stack components.
Bento Box is completely modular, and needs only a small interface layer to work
with other various frameworks and services for your web application.Bento Box offers what are called collections. These collections are observable
streams of data that are subscribed to by various components. These streams
will, most likely, contain modules needed to perform a particular task. One
example might be to push a route to an express instance. See Collections below
for more information.## Install
```
npm install bento-box
```## Basic Usage
```
var BentoBoxFactory = require('bento-box')
var bentoEmitter = BentoBoxFactory.getInstance()bentoEmitter.on('ready', function(bento) {
// Bento Box is ready, do something awesome
})
```## Application Configuration
Bento Box offers centralized appliation configuration, which is loaded
asynchronously when a Bento Box instance is first created Config be default are
loaded from the `config` directory in the project root. The config loader
recursively loads files in the `config` directory has node modules. As an
example the following tree would return:```
── config
├─ index.js
├─ server
│ ├─ routes.js
│ └─ settings.js
├─ database.js
└─ production.js
```
```javascript
{
database: // exports from database.js,
production: // exports from production.js,
server: {
routes: // exports from server/routes.js,
settings: // exports from server/settings.js
}
}
```For more information see [Module Loader](https://github.com/dstreet/bento-box/wiki/Module-Loader) on the wiki.
## API Documentation
[View the documentation](https://github.com/dstreet/bento-box/wiki)
## Testing
Run unit tests
```
npm test
```Run coverage report
```
npm run coverage
```---
[Copyright (c) 2015 David Street](LICENSE.md)