expgen-cli
v1.0.9
Published
CLI tool for creating Express.js API
Downloads
3
Readme
expgen-cli
It's a CLI tool for generating and managing Express.js application.
If you find any bugs, please create an issue here: https://bitbucket.org/ssbishal/expgen.cli/issues
Installation
You have to install Express.js and cors packages before installing expgen-cli. You can do it by running the following command:
npm install express cors
After that you can install express-cli globally by running command:
npm install -g expgen-cli
Creating application
You can generate an application boilerplate with expgen-cli. You can generate an application with a user module for JavaScript or TypeScript. For this, run this command for JavaScript:
expgen init -a -l js
or with TypeScript:
expgen init -a -l ts
Please note, your project must have to be configured with TypeScript for compiling .ts files.
Here is the boilerplate structure for JavaScript:
- app
- services
- user.service.js
- controllers
- user.controller.js
- routes
- user. routes.js
- services
- expgen.conf.json
- server.js
- router.js
Creating a module
You can create a module in your expgen-cli generated project. A module is a combination of a service, a controller and a route. For example, if you have a module called "product" you can simply run this command:
expgen create -m product
This will generate these three files:
- app
- services
- product.service.js
- controllers
- product.controller.js
- routes
- product. routes.js
- services
Creating a controller
Apart from creating a total module you can create all the components separately. To create a controller in your expgen-cli generated project. For example, if you create a controller called "product" you can simply run this command:
expgen create -c product
This will generate these three files:
- app
- controllers
- product.controller.js
- controllers
product.controller.js
const getProducts = async () => {
const values = [1, 2, 3, 4];
return {
values: values
}
};
module.exports = {
getProducts,
}
Creating a service
Similar to creating a controller you can also create a service in your expgen-cli generated project. Run this command:
expgen create -s product
This will generate these three files:
- app
- services
- product.service.js
- services
product.service.js
const { getProducts } = require('../services');
const getAllProducts = async (req, res) => {
try {
const products = await getProducts();
res.status(200).send(products);
} catch (err) {
console.log(err);
res.status(400).send({
message: err.message
});
}
};
module.exports = {
getAllProducts,
}
Creating a route
To create a route you can run this command:
expgen create -r product
This will generate these three files:
- app
- routes
- product.routes.js
- routes
product.routes.js
const { getAllProducts } = require('../controllers');
const express = require('express');
const productRouter = express.Router();
productRouter.get('/api/products', getAllProducts);
module.exports = {
productRouter,
}