1.4.1 ā¢ Published 4 years ago
new-express-app v1.4.1
new-express-app
NPM package to create new pre-configured express app for REST API's from the command line. Download
š What's new?
V 1.3.0
(July 16, 2020) Now, you can choose a package manager npm or yar. š
V 1.2.0
(July 15, 2020) Now, you can choose between JavaScript with EsLint setup and TypeScript with TsLint setup. šš
š„ Installation
install the package globally with this command.
npm i -g new-express-app
āļø Usage
Run this command where you want to create the new app.
npx new-express-app
then answer the following Questions to configure your project:
? Enter Project Name:
? Enter version:
? Enter description:
? Enter author name:
? what language you want to use? # JavaScript or TypeScript
? choose a package Manager: # npm or yarn
? Want to initialise git?
? Want to install dotEnv?
? Want to install database driver? # MongoDB, Mongoose or None
? Want to initialise EsLint/Prettier? # if you chose JavaScript
? Want to initialise TsLint/Prettier? # if you chose TypeScript
š Installed dependencies
Default Dependencies with JavaScript Setup
- Express
- cors
Default Dependencies with TypeScript Setup
- Express
- cors
- typescript
- ts-node
Optinal Dependencies
- dotenv
- mongoDB
- assert
- mongoose
Default devDependencies with JavaScript Setup
- nodemon
Default devDependencies with TypeScript Setup
- nodemon
- @types/node
- @types/express
- @types/cors
Optinal devDependencies
- EsLint / TsLint
- prettier
- required devDependencies for the past two devDependencies.
- @types/mongoose
- @types/mongodb
- @types/assert
š Folder structure
JavaScript Setup
.
āāā .env
āāā .eslintrc.json
āāā .gitignore
āāā package-lock.json
āāā package.json
āāā prettier.config.js
āāā src
āāā controllers
āĀ Ā āāā controller.js
āāā index.js
āāā models
āāā routes
āāā router.js
4 directories, 9 files
TypeScript Setup
.
āāā .env
āāā .gitignore
āāā .prettierrc.json
āāā package-lock.json
āāā package.json
āāā src
āĀ Ā āāā controllers
āĀ Ā āĀ Ā āāā controller.ts
āĀ Ā āāā index.ts
āĀ Ā āāā models
āĀ Ā āāā routes
āĀ Ā āāā router.ts
āāā tsconfig.json
āāā tslint.json
4 directories, 10 files
š Files Content
index.js
const express = require('express');
const cors = require('cors');
const router = require('./routes/router');
const app = express();
app.use(express.urlencoded());
app.use(express.json());
app.use(cors({ origin: true, credentials: true }));
app.use('/', router);
app.listen(8080, () => {
console.log('Server Running');
});
router.js
const express = require('express');
const Controller = require('../controllers/controller');
const router = express.Router();
router.use('/', Controller.helloWorld);
module.exports = router;
controller.js
exports.helloWorld = (req, res, next) => {
res.send('<h1>Hello World!</h1>');
};
.eslintrc.json
{
"env": {
"node": true,
"commonjs": true,
"es2020": true
},
"extends": ["plugin:prettier/recommended", "airbnb-base"],
"parserOptions": {
"ecmaVersion": 11
},
"rules": {
"prettier/prettier": "error"
},
"plugins": ["prettier"]
}
prettier.config.js
module.exports = {
tabWidth: 2,
semi: true,
singleQuote: true,
trailingComma: 'es5',
};
š¦¾ Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
ā License
Copyright 2020 Mahmoud .A Mahmoud. Licensed under the MIT License