Bogart is an awesome framework, but it currently does not come with a CLI. This module provides a CLI to help you get started quicker and easier with Bogart.
npm install -g bogart-gen
The easiest way to get started in Rails is now the easiest way to get started in Bogart. Just use
bogart new <appName>
This will generate a folder tree that looks like this:
appName |
|__ lib
| |__ apis
| |__ repositories
| |__ views
| | |__ layout.html
| |
| |__ routers
| | |__ hello.js
| | |__ middleware.js
| | |__ static-content.js
| |
| |__ util.js
|
|__ public
| |__ images
| |__ javascripts
| |__ stylesheets
|
|__ db
| |__ migrations
| |__ schema.sql
|
|__ config
| |__ settings.js
|
|__ Readme.md
|__ app.js
|__ package.json
Repositories are the database abstraction layer of a Bogart application. Currently, bogart-gen only supports MySQL. Repos generated with bogart-gen will contain a basic CRUD with five functions:
get: // Get an object from the database by it's id
- ```javascript
set: // Create a new entry in the DB, or update an existing one if the object passed to it has an ID
search: // More flexible than list, and return is compatible with GammaGrid
- ```javascript
del: // Deletes an entry from the database
From the CLI, use bogart generate repo <modelName>
to generate a repo.
bogart-gen can create Bogart routing files for you so you can get up and running quickly. All API routes generated by bogart-gen will start with '/api/'. These API's will expose all of the repository methods; returns will be in JSON. Generate an API by calling the following from the command line:
bogart g api <modelName>
You'll notice that this uses 'g' instead of 'generate'; this is a convenience provided by bogart-gen, it doesn't matter whether you use 'g' or 'generate'.
With bogart g router <name> [routes]
, you can generate a router file with a few predefined routes (unless you specify the --lite
option). For example, bogart g router post
would generate the following file:
var bogart = require('bogart');
module.exports = function (router, viewEngine) {
router = router || bogart.router();
router.get('/posts', function (req) {
});
router.get('/post/:id', function (req){
});
router.post('/post', function (req) {
})
}
With bogart g router post --lite
the output becomes
var bogart = require('bogart');
module.exports = function (router, viewEngine) {
router = router || bogart.router();
//Specify routes here
/*Example:
router.get('/post/:id', function (req){
});
*/
}