FeastJS
Installation
$ npm install -g feastjs
Quick Start
The quickest way to get started with feastjs is to utilize the executable feast
to generate an application as shown below:
Create the app:
$ feast new myapp create : myapp create : myapp/package.json create : myapp/.env create : myapp/app.js create : myapp/gulpfile.js create : myapp/app create : myapp/db create : myapp/db/setup.js create : myapp/db/seed.js create : myapp/public create : myapp/public/js create : myapp/public/images create : myapp/public/css create : myapp/routes create : myapp/routes/routes.js create : myapp/bin create : myapp/bin/www create : myapp/app/assets create : myapp/app/controllers create : myapp/app/controllers/index_controller.js create : myapp/app/models create : myapp/app/helpers create : myapp/app/views create : myapp/app/middlewares create : myapp/db/migrations create : myapp/test/controllers create : myapp/test/helpers create : myapp/test/models create : myapp/app/assets/javascripts create : myapp/app/assets/javascripts/script.js create : myapp/app/assets/stylesheets create : myapp/app/assets/stylesheets/style.css create : myapp/app/views/index create : myapp/app/views/index/home.ejs create : myapp/app/views/error.ejs create : myapp/app/views/partials create : myapp/app/views/partials/head.ejs create : myapp/app/views/partials/footer.ejs create : myapp/test create : myapp/test/controllers/index_controller_test.js install dependencies: $ cd myapp && npm install run the app: $ DEBUG=myapp:* npm run watch
Install dependencies:
$ npm install
OR use yarn
$ yarn install
Setup your assets:
$ gulp
Currently it supports only PostgreSQL
Update .env
file
Run
$ npm run db:setup
Start your app at http://localhost:3000/
:
$ npm start
To watch over file changes (hugely reduces pain of restarting server) :
$ npm run watch
File Structure
myapp||____app| || |____assets| | |____javascripts| | |____stylesheets| || |____controllers| | |____home.js| || |____models| | |___home.js| || |____helpers| || |____middlewares| || |____views| |____index| | |____home.ejs| |____error.ejs||_____routes| |___routes.js||____node_modules||____public| |____css| || |____js| || |____img||_____app.js||_____gulpfile.js||_____package.json
Command Line Options
This generator can also be further configured with the following command line flags.
Usage: feast [options] [command] Commands: help [command] new <name> generate|g <typeGenerate> <name> [listToBeGenerated...] delete|d <typeDelete> <name> * Options: -h, --help output usage information -v, --version output the version number --git add gitignore
Generate Controllers
$ feast generate controller static_pages index home create : /home/hitman/myapp/app/controllers/static_pages_controller.js route : get 'static_pages/home' route : get 'static_pages/index' invoke test_unit create : /home/hitman/myapp/test/controllers/static_pages_controller_test.js invoke helper create : /home/hitman/myapp/app/helpers/static_pages_helper.js invoke js create : /home/hitman/myapp/app/assets/javascripts/static_pages.js invoke css create : /home/hitman/myapp/app/assets/stylesheets/static_pages.css invoke ejs create : /home/hitman/myapp/app/views/static_pages create : /home/hitman/myapp/app/views/static_pages/home.ejs create : /home/hitman/myapp/app/views/static_pages/index.ejs
Navigate to /static_pages/index
Generate Models
$ feast generate model random title:string plate:number create : myapp/app/models/random.js create : myapp/test/models/random_test.js create : myapp/db/migrations/[timestamp]_create_random.js
Run migrations (this feature is still under dev)
$ npm run migrations
To-Do
- To add sample login and signup functionality
- Add support for more css engines less|stylus|compass|sass
- Add support for more templating engines
- Add tests