https://github.com/code2life/koa-generator
A flexible code generator for koa2
https://github.com/code2life/koa-generator
ejs koa-generator koa2 mongodb mysql pug restful-api sequelize
Last synced: 2 months ago
JSON representation
A flexible code generator for koa2
- Host: GitHub
- URL: https://github.com/code2life/koa-generator
- Owner: Code2Life
- License: mit
- Created: 2017-12-18T01:35:03.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2021-01-20T07:24:22.000Z (almost 5 years ago)
- Last Synced: 2025-02-13T06:09:31.150Z (11 months ago)
- Topics: ejs, koa-generator, koa2, mongodb, mysql, pug, restful-api, sequelize
- Language: JavaScript
- Homepage:
- Size: 16.6 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Koa-generator-pro
A flexible code generator for koa2. Koa-generator-pro can generate a MVC node.js project with koa@2.x+, mongodb or mysql data access, ejs or pug template engine, mocha + should.js unit test examples and so on.
# Install
```
npm install koa-generator-pro -g
```
## Basic Usages
```
/* open command line or shell in a empty directory */
/* lookup usage and default options */
koa2 --help
/* create a project at port 3000, pug + koa2 + sequelize + mysql + mocha ... */
koa2 -p 3000 -d mysql -t pug -u true
/* create a resutful api project with mongodb */
koa2 -d mongodb
```
## Options
1. -p --port : default 3000, any number between 0~65535
2. -d --database: default none, support mysql and mongodb currently
3. -t --template: default none, support ejs and jade/pug
4. -u --unit-test: default true, set false if you don't want to write unit test
5. -a --addons: default "", define your custom plugins by set this option
## Notice
Generated project can only run by node which version is above 7.6.0
## Plugin example
```
# add-custom-util-plugin.js
const fs = require('fs');
const path = require('path');
/**
* @param {pathStr} generator work directory, equals to process.cwd()
* @param {root} instance of KoaBuilder,
* options can be found in root, like root.port
* @param {package} the object would be wrote to package.json
*/
async function build(pathStr, root, package) {
//await some asynchronizaed business
let codeToWrite = '... function(){} ... module.export = ...';
let writePath = path.resolve(pathStr, 'common/my-util.js');
fs.writeFileSync(writePath, codeToWrite);
}
/* save this file in ../plugin & use like following */
// koa2 -p 3001 -a ../plugin/add-custom-util-plugin.js
```
## License
MIT License