Skip to content

Commit 0dcfb30

Browse files
Merge remote-tracking branch 'origin/release/v4' into release/v4
2 parents 0a6034f + e220333 commit 0dcfb30

1 file changed

Lines changed: 25 additions & 37 deletions

File tree

Readme.md

Lines changed: 25 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,35 @@
2424

2525
## Description
2626

27-
Nest is a powerful web framework for [Node.js](http://nodejs.org), which helps you effortlessly build efficient, scalable applications. It uses modern JavaScript, is built with [TypeScript](http://www.typescriptlang.org) and combines best concepts of both OOP (Object Oriented Progamming) and FP (Functional Programming).
27+
<p>Nest is a framework for building efficient, scalable <a href="http://nodejs.org" target="_blank">Node.js</a> web applications. It uses modern JavaScript, is built with <a href="http://www.typescriptlang.org" target="_blank">TypeScript</a> and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reactive Programming).</p>
28+
<p>Under the hood, Nest makes use of <a href="https://expressjs.com/" target="_blank">Express</a>, allowing for easy use of the myriad third-party plugins which are available.</p>
2829

29-
Nest is using well-known—[Express](https://github.com/expressjs/express) library under the hood. This means that you can quickly start using Nest without worrying about third party plugins.
30+
31+
## Philosophy
32+
33+
<p>In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front and backend applications, giving rise to awesome projects like <a href="https://angular.io/" target="_blank">Angular</a>, <a href="https://github.com/facebook/react" target="_blank">React</a> and <a href="https://github.com/vuejs/vue" target="_blank">Vue</a> which improve developer productivity and enable the construction of fast, testable, extensible frontend applications. However, on the server-side, while there are a lot of superb libraries, helpers and tools for Node, none of them effectively solve the main problem - the architecture.</p>
34+
<p>Nest aims to provide an application architecture out of the box which allows for effortless creation of highly testable, scalable, loosely coupled and easily maintainable applications.</p>
35+
36+
## Features
37+
38+
<ul>
39+
<li>Built with <a href="http://www.typescriptlang.org" target="_blank">TypeScript</a></li>
40+
<li><strong>Easy</strong> to learn - syntax similar to <a href="https://angular.io/" target="_blank">Angular</a></li>
41+
<li><strong>Familiar</strong> - based on well-known libraries (<a href="https://github.com/expressjs/express" target="_blank">Express</a> / <a href="https://github.com/socketio/socket.io" target="_blank">socket.io</a>)</li>
42+
<li><strong>Dependency Injection</strong> - built-in asynchronous <strong>IoC</strong> container with a <strong>hierarchical injector</strong></li>
43+
<li><strong>WebSockets</strong> module (based on <a href="https://github.com/socketio/socket.io" target="_blank">socket.io</a>, but you can bring your own library, by making use of <code>WsAdapter</code>)</li>
44+
<li><strong>Modular</strong> - defines an easy to follow module definition pattern so you can split your system into reusable modules</li>
45+
<li><strong>Reactive microservice</strong> support with message patterns (built-in transport via TCP / <a href="https://redis.io/" target="_blank">Redis</a>, but other communication schemes can be implemented with <code>CustomTransportStrategy</code>)</li>
46+
<li><strong>Exception layer</strong> - throwable web exceptions with status codes, exception filters</li>
47+
<li><strong>Pipes</strong> - synchronous & asynchronous (e.g. validation purposes)</li>
48+
<li><strong>Guards</strong> - attach additional logic in a declarative manner (e.g. role-based access control)</li>
49+
<li><strong>Interceptors</strong> - built on top of <a href="https://github.com/reactivex/rxjs" target="blank">RxJS</a></li>
50+
<li>Testing utilities (both <strong>e2e & unit</strong> tests)</li>
51+
</ul>
3052

3153
## Installation
3254

33-
**Install the TypeScript Starter Project with Git::**
55+
**Install the TypeScript Starter Project with Git:**
3456
```bash
3557
$ git clone https://github.com/kamilmysliwiec/nest-typescript-starter.git project
3658
$ cd project
@@ -43,44 +65,10 @@ $ npm run start
4365
$ npm i --save @nestjs/core @nestjs/common @nestjs/microservices @nestjs/websockets @nestjs/testing reflect-metadata rxjs
4466
```
4567

46-
## Philosophy
47-
48-
JavaScript is awesome. This language is no longer just a trash to create simple animations in the browser. Now, the front end world is rich in variety of tools. We have a lot of amazing frameworks / libraries such as [Angular](https://angular.io/), [React](https://github.com/facebook/react) or [Vue](https://github.com/vuejs/vue), which improves our development process and makes our applications fast and flexible.
49-
50-
[Node.js](http://nodejs.org) gave us a possibility to use this language also on the server side. There are a lot of superb libraries, helpers and tools for node, but non of them do not solve the main problem - the architecture.
51-
52-
We want to create scalable, loosely coupled and easy to maintain applications. Let's show the entire world node.js potential together!
53-
54-
## Features
55-
56-
- Built on top of [TypeScript](http://www.typescriptlang.org)
57-
- Easy to learn - syntax is similar to [Angular](https://angular.io/)
58-
- Based on well-known libraries ([Express](https://github.com/expressjs/express) / [socket.io](https://github.com/socketio/socket.io)) so you could share your experience
59-
- Supremely useful Dependency Injection, built-in asynchronous **Inversion of Control** container
60-
- **Hierarchical injector** - increase abstraction in your application by creating reusable, loosely coupled modules with type injection
61-
- **WebSockets** module (based on [socket.io](https://github.com/socketio/socket.io), although you can use any other library using adapter)
62-
- Own modularity system (split your system into reusable modules)
63-
- Reactive **microservices** support with messages patterns (built-in transport via TCP / [Redis](https://redis.io/), but you can use any other type of communication using `CustomTransportStrategy`)
64-
- Exceptions handler layer, exception filters, **synchronous & asynchronous pipes** layer
65-
- **Guards** & Reflector - attach additional logic in more declaritive way (e.g. role-based access control)
66-
- **Interceptors** built on top of [RxJS](https://github.com/Reactive-Extensions/RxJS) library,
67-
- Testing utilities (both **e2e & unit** tests)
68-
6968
## Documentation & Quick Start
7069

7170
[Documentation & Tutorial](http://docs.nestjs.com)
7271

73-
## Starter repos
74-
75-
- [TypeScript](https://github.com/kamilmysliwiec/nest-typescript-starter)
76-
- [Babel](https://github.com/kamilmysliwiec/nest-babel-starter/)
77-
78-
## Useful references
79-
80-
- [Modules](http://docs.nestjs.com/modules.html)
81-
- [Examples](http://docs.nestjs.com/examples.html)
82-
- [API Reference](http://docs.nestjs.com/api-reference.html)
83-
8472
## People
8573

8674
- Author - [Kamil Myśliwiec](http://kamilmysliwiec.com)

0 commit comments

Comments
 (0)