A TypeScript Express Starter App

A TypeScript Express Starter App

A TypeScript Express Starter App. TypeScript Express Starter: Express RESTful API Boilerplate Using TypeScript

logo

TypeScript Express Starter

πŸš€ Express RESTful API Boilerplate Using TypeScript

πŸ‡ΊπŸ‡Έ πŸ‡°πŸ‡·

πŸ€” What is Express ?

Express is a fast, open and concise web framework and is a Node.js based project.

😎 Introducing The Project

Express consists of JavaScript, which makes it vulnerable to type definitions.

That's why we avoid supersets with starter packages that introduce TypeScript.

The package is configured to use TypeScript instead of JavaScript.

The project referred to express-generator-typescript by seanpmaxwell πŸ‘

πŸš€ Quick Start

Install with the npm Global Package

$ npm install -g typescript-express-starter

Run npx to Install The Package

npx is a tool in the JavaScript package management module, npm.

This is a tool that allows you to run the npm package on a single run without installing the package.

If you do not enter a project name, it defaults to typescript-express-starter.

$ npx typescript-express-starter "project name"

Select a Templates

cli

Start your typescript-express-starter app in development mode at http://localhost:3000/

Template Type
Name Desc
Default Express Default
Routing Controllers Create structured, declarative and beautifully organized class-based controllers with heavy decorators usage
Sequlize Easy to use multi SQL dialect ROM for Node.js
Mongoose MongoDB Object Modeling(ODM) designed to work in an asynchronous environment
TypeORM An ORM that can run in Node.js and Others
Prisma Modern Database Access for TypeScript & Node.js
Knex SQL query builder for Postgres, MySQL, MariaDB, SQLite3 and Oracle
GraphQL (Developing) query language for APIs and a runtime for fulfilling those queries with your existing data

πŸ›Ž Available Commands for the Server

  • Run the Server in production mode : npm run start or Start typescript-express-starter in VS Code
  • Run the Server in development mode : npm run dev or Dev typescript-express-starter in VS Code
  • Run all unit-tests : npm run test or Test typescript-express-starter in VS Code
  • Check for linting errors : npm run lint or Lint typescript-express-starter in VS Code
  • Fix for linting : npm run lint:fix or Lint:Fix typescript-express-starter in VS Code

πŸ’Ž The Package Features

Simple Icons

🐳 Docker - Containers

Docker is a platform for developers and sysadmins to build, run, and share applications with containers.

Docker Install.

  • starts the containers in the background and leaves them running : docker-compose up -d
  • Stops containers and removes containers, networks, volumes, and images : docker-compose down

Modify docker-compose.yml and Dockerfile file to your source code.

♻️ NGINX - Reverse Proxy

NGINX is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.

Proxying is typically used to distribute the load among several servers, seamlessly show content from different websites, or pass requests for processing to application servers over protocols other than HTTP.

When NGINX proxies a request, it sends the request to a specified proxied server, fetches the response, and sends it back to the client.

Modify nginx.conf file to your source code.

✨ ESLint, Prettier - Code Formatter

Palantir, the backers behind TSLint announced in 2019 that they would be deprecating TSLint in favor of supporting typescript-eslint in order to benefit the community.

So, migration from TSLint to ESLint.

ESLint, Find and fix problems in your JavaScript code

Prettier is an opinionated code formatter.

It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.

  1. Install VSCode Extension Prettier, ESLint

  2. CMD + Shift + P (Mac Os) or Ctrl + Shift + P (Windows)

  3. Format Selection With

  4. Configure Default Formatter...

  5. Prettier - Code formatter

formatter

πŸ“— Swagger - API Document

Swagger is Simplify API development for users, teams, and enterprises with the Swagger open source and professional toolset.

Easily used by Swagger to design and document APIs at scale.

Start your app in development mode at http://localhost:3000/api-docs

Modify swagger.yaml file to your source code.

🌐 REST Client(VSCode Extension) - HTTP Client Tools

REST Client allows you to send HTTP request and view the response in Visual Studio Code directly.

VSCode Extension REST Client Install.

Modify *.http file in http folder to your source code.

πŸ—‚ Code Structure (default)

β”‚
β”œβ”€β”€ /.vscode
β”‚   β”œβ”€β”€ launch.json
β”‚   └── settings.json
β”‚
β”œβ”€β”€ /src
β”‚   β”œβ”€β”€ /configs
β”‚   β”‚   β”œβ”€β”€ development.json
β”‚   β”‚   β”œβ”€β”€ production.json
β”‚   β”‚   └── test.json
β”‚   β”‚
β”‚   β”œβ”€β”€ /controllers
β”‚   β”‚   β”œβ”€β”€ auth.controller.ts
β”‚   β”‚   β”œβ”€β”€ index.controller.ts
β”‚   β”‚   └── users.controller.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ /dtos
β”‚   β”‚   └── users.dto.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ /exceptions
β”‚   β”‚   └── HttpException.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ /http
β”‚   β”‚   β”œβ”€β”€ auth.http
β”‚   β”‚   └── users.http
β”‚   β”‚
β”‚   β”œβ”€β”€ /interfaces
β”‚   β”‚   β”œβ”€β”€ auth.interface.ts
β”‚   β”‚   β”œβ”€β”€ routes.interface.ts
β”‚   β”‚   └── users.interface.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ /middlewares
β”‚   β”‚   β”œβ”€β”€ auth.middleware.ts
β”‚   β”‚   β”œβ”€β”€ error.middleware.ts
β”‚   β”‚   └── validation.middleware.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ /models
β”‚   β”‚   └── users.model.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ /routes
β”‚   β”‚   β”œβ”€β”€ auth.route.ts
β”‚   β”‚   β”œβ”€β”€ index.route.ts
β”‚   β”‚   └── users.route.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ /services
β”‚   β”‚   β”œβ”€β”€ auth.service.ts
β”‚   β”‚   └── users.service.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ /tests
β”‚   β”‚   β”œβ”€β”€ auth.test.ts
β”‚   β”‚   β”œβ”€β”€ index.test.ts
β”‚   β”‚   └── users.test.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ /utils
β”‚   β”‚   β”œβ”€β”€ logger.ts
β”‚   β”‚   β”œβ”€β”€ util.ts
β”‚   β”‚   └── vaildateEnv.ts
β”‚   β”‚
β”‚   β”œβ”€β”€ app.ts
β”‚   └── server.ts
β”‚
β”œβ”€β”€ .dockerignore
β”œβ”€β”€ .editorconfig
β”œβ”€β”€ .env
β”œβ”€β”€ .eslintignore
β”œβ”€β”€ .eslintrc
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .huskyrc
β”œβ”€β”€ .lintstagedrc.json
β”œβ”€β”€ .prettierrc
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ ecosystem.config.js
β”œβ”€β”€ jest.config.js
β”œβ”€β”€ Makefile
β”œβ”€β”€ nginx.conf
β”œβ”€β”€ nodemon.json
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ package.json
β”œβ”€β”€ swagger.yaml
└── tsconfig.json
When Commit Message
Add Feature ✨ Add Feature
Fix Bug 🐞 Fix Bug
Refactoring Code πŸ›  Refactoring Code
Install Package πŸ“¦ Install Package
Fix Readme πŸ“š Fix Readme
Update Version 🌼 Update Version
New Template πŸŽ‰ New Template

Download Details:

Author: ljlm0402 The Demo/Documentation: View The Demo/Documentation Download Link: Download The Source Code Official Website: https://github.com/ljlm0402/typescript-express-starter License: MIT

typescript express node javascript

What is Geek Coin

What is GeekCash, Geek Token

Best Visual Studio Code Themes of 2021

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Setting up TypeScript and Node with Express

In this video, I have talked about setting up TypeScript and NodeJS with Express.

How to set up TypeScript with Node and Express

Hello, my friends and fellow developers, in this video, I have talked about setting up TypeScript and NodeJS with Express.Let me know in the comments below i...

Using TypeScript with Node.js and Express

Learn how to set up TypeScript in an Express.js app. This post describes a beginner-friendly way to set up TypeScript in an Express.js app and understand the basic constraints that come with it.

Creating a Module and Controller in Nest JS | Node JS, Javascript, Typescript - 02

Creating a Module and Controller in Nest JS | Node JS, Javascript, Typescript. In this video, we are going to create a new module inside our application. We will see how a module is added to the main app and how it's dependency is loaded. Also, we will look at how we can create a controller and how it will be registered in a module and then look at actually returning a response from that module's controller.

Converting Node Express to Serverless with Azure Functions with TypeScript

Converting Node Express to Serverless with Azure Functions with TypeScript. You will: Establish an Application Programming Interfaces (API); Evaluate an existing project that implements Express APIs; Create a new Azure Functions application with TypeScript/JavaScript; Refactor the Node.js Express APIs to the Azure Functions application; Run and debug the application locally; Understand the differences and similarities in refactoring Express APIs to Azure Functions.