Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 58f6dbf

Browse files
2 parents 1483a8b + dae0731 commit 58f6dbf

File tree

11 files changed

+140
-12
lines changed

11 files changed

+140
-12
lines changed

‎src/app/app-routing.module.ts‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,14 @@ import { LoggerComponent } from './homepage/pages/techniques/logger/logger.compo
6666
import { MongoComponent } from './homepage/pages/techniques/mongo/mongo.component';
6767
import { MvcComponent } from './homepage/pages/techniques/mvc/mvc.component';
6868
import { PerformanceComponent } from './homepage/pages/techniques/performance/performance.component';
69+
import { HotReloadComponent } from './homepage/pages/techniques/hot-reload/hot-reload.component';
70+
import { ConfigurationComponent } from './homepage/pages/techniques/configuration/configuration.component';
71+
import { MigrationComponent } from './homepage/pages/migration/migration.component';
72+
import { MqttComponent } from './homepage/pages/microservices/mqtt/mqtt.component';
73+
import { NatsComponent } from './homepage/pages/microservices/nats/nats.component';
74+
import { GrpcComponent } from './homepage/pages/microservices/grpc/grpc.component';
75+
import { RabbitMQComponent } from './homepage/pages/microservices/rabbitmq/rabbitmq.component';
76+
import { SupportComponent } from './homepage/pages/support/support.component';
6977
import { SecurityComponent } from './homepage/pages/techniques/security/security.component';
7078
import { SerializationComponent } from './homepage/pages/techniques/serialization/serialization.component';
7179
import { SqlComponent } from './homepage/pages/techniques/sql/sql.component';
@@ -287,6 +295,11 @@ const routes: Routes = [
287295
component: GrpcComponent,
288296
data: { title: 'gRPC - Microservices' },
289297
},
298+
{
299+
path: 'microservices/rabbitmq',
300+
component: RabbitMQComponent,
301+
data: { title: 'RabbitMQ - Microservices' },
302+
},
290303
{
291304
path: 'microservices/pipes',
292305
component: MicroservicesPipesComponent,

‎src/app/app.module.ts‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ import { CompressionComponent } from './homepage/pages/techniques/compression/co
7575
import { ConfigurationComponent } from './homepage/pages/techniques/configuration/configuration.component';
7676
import { FileUploadComponent } from './homepage/pages/techniques/file-upload/file-upload.component';
7777
import { HotReloadComponent } from './homepage/pages/techniques/hot-reload/hot-reload.component';
78+
import { ConfigurationComponent } from './homepage/pages/techniques/configuration/configuration.component';
79+
import { MigrationComponent } from './homepage/pages/migration/migration.component';
80+
import { MqttComponent } from './homepage/pages/microservices/mqtt/mqtt.component';
81+
import { GrpcComponent } from './homepage/pages/microservices/grpc/grpc.component';
82+
import { RabbitMQComponent } from './homepage/pages/microservices/rabbitmq/rabbitmq.component';
83+
import { NatsComponent } from './homepage/pages/microservices/nats/nats.component';
84+
import { SupportComponent } from './homepage/pages/support/support.component';
7885
import { HttpModuleComponent } from './homepage/pages/techniques/http-module/http-module.component';
7986
import { LoggerComponent } from './homepage/pages/techniques/logger/logger.component';
8087
import { MongoComponent } from './homepage/pages/techniques/mongo/mongo.component';
@@ -180,6 +187,7 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
180187
MigrationComponent,
181188
MqttComponent,
182189
GrpcComponent,
190+
RabbitMQComponent,
183191
NatsComponent,
184192
SupportComponent,
185193
TocComponent,

‎src/app/homepage/header/header.component.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<a href="https://twitter.com/nestframework" target="blank">
2525
<i class="fa fa-twitter"></i>
2626
</a>
27-
<a href="https://github.com/kamilmysliwiec/nest" target="blank">
27+
<a href="https://github.com/nestjs/nest" target="blank">
2828
<i class="fa fa-github"></i>
2929
</a>
3030
<a href="https://stackoverflow.com/questions/tagged/nestjs" target="blank">

‎src/app/homepage/menu/menu.component.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ export class MenuComponent implements OnInit {
115115
{ title: 'MQTT', path: '/microservices/mqtt' },
116116
{ title: 'NATS', path: '/microservices/nats' },
117117
{ title: 'gRPC', path: '/microservices/grpc' },
118+
{ title: 'RabbitMQ', path: '/microservices/rabbitmq' },
118119
{
119120
title: 'Exception filters',
120121
path: '/microservices/exception-filters',

‎src/app/homepage/pages/controllers/controllers.component.html‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ <h4>Routing</h4>
3535
<code>cats</code>), Nest will map every <code>/cats</code> <strong>GET</strong> request to this method.
3636
</p>
3737
<p>
38-
When a GET request is made to this endpoint, Nest will now return a 200 status code and the serialized <strong>JSON</strong>
39-
response, which in this case just an empty array. Why does that happen? Generally, we distinguish <strong>two different
38+
When a GET request is made to this endpoint, Nest will now return a 200 status code and the associated
39+
response, which in this case is just a string. Why does that happen? Generally, we distinguish <strong>two different
4040
approaches
4141
</strong> to manipulate responses:
4242
</p>

‎src/app/homepage/pages/discover/who-uses/who-uses.component.ts‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ export class WhoUsesComponent extends BasePageComponent {
5454
logo: 'https://nestjs.com/genuinebee.bdd5ef72.svg',
5555
url: 'https://genuinebee.com/',
5656
},
57+
{
58+
logo: '/assets/logo/architectnow.png',
59+
url: 'http://architectnow.net'
60+
}
5761
];
5862

5963
readonly companiesUrls = [
@@ -64,7 +68,6 @@ export class WhoUsesComponent extends BasePageComponent {
6468
'https://kerberus.com.co/',
6569
'https://www.notadd.com/',
6670
'http://jsdaddy.io/',
67-
'http://architectnow.net/',
6871
'https://www.yumpingo.com/',
6972
'https://www.analytics-importer.cz/',
7073
'https://www.dayzim.com/',
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<div class="content">
2+
<h3>RabbitMQ</h3>
3+
<p>
4+
The <a href="https://www.rabbitmq.com/" target="blank">RabbitMQ</a> is the most widely deployed open source message broker.
5+
</p>
6+
<h4>Installation</h4>
7+
<p>Before we start, we have to install required package:</p>
8+
<pre><code class="language-bash">
9+
$ npm i --save amqp</code></pre>
10+
<h4>Transporter</h4>
11+
<p>
12+
In order to switch to <strong>RabbitMQ</strong> transporter, we need to modify an options object passed to the <code>createMicroservice()</code> method.
13+
</p>
14+
<span class="filename">
15+
{{ 'main' | extension: optionsT.isJsActive }}
16+
<app-tabs #optionsT></app-tabs>
17+
</span>
18+
<pre><code class="language-typescript">{{ options }}</code></pre>
19+
<h4>Options</h4>
20+
<p>
21+
There are a bunch of available options that determine a transporter behavior.
22+
</p>
23+
<table>
24+
<tr>
25+
<td><code>url</code></td>
26+
<td>Connection url </td>
27+
</tr>
28+
<tr>
29+
<td><code>queue</code></td>
30+
<td>Queue name which your server will listen</td>
31+
</tr>
32+
<tr>
33+
<td><code>queueOptions</code></td>
34+
<td>Additional options for creating a queue. They are well-described <a href="https://github.com/postwait/node-amqp" target="blank">here</a></td>
35+
</tr>
36+
</table>
37+
<h4>Client</h4>
38+
<p>
39+
In order to connect with Client, we are creating the <code>ClientProxy</code> instance using the <code>ClientProxyFactory</code> (exported from <code>@nestjs/microservices</code> package).
40+
</p>
41+
<span class="filename">
42+
{{ 'client' | extension: clientT.isJsActive }}
43+
<app-tabs #clientT></app-tabs>
44+
</span>
45+
<pre><code class="language-typescript">{{ client }}</code></pre>
46+
<p>
47+
In <code>queue</code>, we define queue that our server is listening. You don't have to worry about reply queue, NestJS will create it for each client. But each server needs a unique queue. You can use multiple instanсes of your server to balance your load.
48+
</p>
49+
<p>
50+
To send a message and listen to reply simply use <code>send()</code> method:
51+
</p>
52+
<span class="filename">
53+
{{ 'client' | extension: sendT.isJsActive }}
54+
<app-tabs #sendT></app-tabs>
55+
</span>
56+
<pre><code class="language-typescript">{{ send }}</code></pre>
57+
<p>
58+
Where <code>MyInterfaceForMessage</code> and <code>MyInterfaceForReply</code> are interfaces for message and reply.
59+
</p>
60+
</div>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';
2+
import { BasePageComponent } from '../../page/page.component';
3+
4+
@Component({
5+
selector: 'app-rabbitmq',
6+
templateUrl: './rabbitmq.component.html',
7+
changeDetection: ChangeDetectionStrategy.OnPush,
8+
})
9+
export class RabbitMQComponent extends BasePageComponent {
10+
get options() {
11+
return `
12+
const app = await NestFactory.createMicroservice(ApplicationModule, {
13+
transport: Transport.RMQ,
14+
options: {
15+
url: \`amqp://$\{conf.user}:\${conf.password}@\${conf.host}\`,
16+
queue: 'myqueue',
17+
queueOptions: { durable: false }
18+
},
19+
});`;
20+
}
21+
22+
get client() {
23+
return `
24+
this.client = ClientProxyFactory.create({
25+
transport: Transport.RMQ,
26+
options: {
27+
url: \`amqp://\${conf.user}:\${conf.password}@\${conf.host}\`,
28+
queue: 'myqueue',
29+
queueOptions: { durable: false }
30+
}
31+
});`;
32+
}
33+
34+
get send() {
35+
return `
36+
let pattern = { cmd: 'doit' };
37+
this.client.send<MyInterfaceForMessage, MyInterfaceForReply>(pattern, 'myqueue').subscribe((x: MyInterfaceForReply) => {
38+
console.log('I got resp: ' + x);
39+
})`;
40+
}
41+
42+
}

‎src/app/homepage/pages/middlewares/middlewares.component.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export class ApplicationModule {
110110

111111
get routeWildcards() {
112112
return `
113-
forRoutes({ path: '*', method: RequestMethod.ALL })`;
113+
forRoutes({ path: 'ab*cd', method: RequestMethod.ALL })`;
114114
}
115115

116116
get applicationModuleByControllers() {

‎src/app/homepage/pages/recipes/prisma/prisma.component.ts‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
import { ChangeDetectionStrategy, Component } from '@angular/core';
2-
import { BasePageComponent } from '../../page/page.component';
1+
import { ChangeDetectionStrategy, Component } from "@angular/core";
2+
import { BasePageComponent } from "../../page/page.component";
33

44
@Component({
5-
selector: 'app-prisma',
6-
templateUrl: './prisma.component.html',
7-
changeDetection: ChangeDetectionStrategy.OnPush,
5+
selector: "app-prisma",
6+
templateUrl: "./prisma.component.html",
7+
changeDetection: ChangeDetectionStrategy.OnPush
88
})
99
export class PrismaComponent extends BasePageComponent {
1010
get dependencies() {
1111
return `
12-
$ npm install --save prisma prisma-binding`;
12+
$ npm install --save prisma-binding`;
1313
}
1414

1515
get prismaYaml() {
@@ -37,7 +37,8 @@ projects:
3737
database:
3838
schemaPath: src/prisma/prisma-types.graphql
3939
extensions:
40-
prisma: prisma.yml
40+
endpoints:
41+
default: https://us1.prisma.sh/nest-f6ec12/prisma/dev
4142
codegen:
4243
- generator: prisma-binding
4344
language: typescript

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /