Node.js

Inhaltsverzeichnis

... Foreword ... 25

... Preface ... 27

... Structure of the Book ... 28

... Downloading the Code Samples ... 29

... Acknowledgments ... 30

1 ... Basic Principles ... 31

1.1 ... The Story of Node.js ... 33

1.2 ... Organization of Node.js ... 37

1.3 ... Versioning of Node.js ... 38

1.4 ... Benefits of Node.js ... 40

1.5 ... Areas of Use for Node.js ... 40

1.6 ... The Core: V8 Engine ... 41

1.7 ... Libraries around the Engine ... 47

1.8 ... Summary ... 53

2 ... Installation ... 55

2.1 ... Installing Packages ... 56

2.2 ... Compiling and Installing ... 68

2.3 ... Node Version Manager ... 71

2.4 ... Node and Docker ... 71

2.5 ... Summary ... 72

3 ... Developing Your First Application ... 73

3.1 ... Interactive Mode ... 73

3.2 ... The First Application ... 79

3.3 ... Debugging Node.js Applications ... 88

3.4 ... nodemon Development Tool ... 98

3.5 ... Summary ... 99

4 ... Node.js Modules ... 101

4.1 ... Modular Structure ... 101

4.2 ... Core Modules ... 103

4.3 ... JavaScript Module Systems ... 121

4.4 ... Creating and Using Your Own Modules ... 124

4.5 ... Summary ... 135

5 ... HTTP ... 137

5.1 ... Web Server ... 137

5.2 ... Node.js as HTTP Client ... 164

5.3 ... Secure Communication with HTTPS ... 168

5.4 ... HTTP/2 ... 170

5.5 ... Summary ... 175

6 ... Express ... 177

6.1 ... Structure ... 177

6.2 ... Installation ... 178

6.3 ... Basic Principles ... 179

6.4 ... Setup ... 181

6.5 ... Movie Database ... 185

6.6 ... Middleware ... 193

6.7 ... Extended Routing: Deleting Data Records ... 199

6.8 ... Creating and Editing Data Records: Body Parser ... 201

6.9 ... Express 5 ... 208

6.10 ... HTTPS and HTTP/2 ... 209

6.11 ... Summary ... 212

7 ... Template Engines ... 213

7.1 ... Custom Template Engine ... 214

7.2 ... Template Engines in Practice: Pug ... 215

7.3 ... Handlebars ... 229

7.4 ... Summary ... 239

8 ... Connecting Databases ... 241

8.1 ... Node.js and Relational Databases ... 242

8.2 ... Node.js and Nonrelational Databases ... 260

8.3 ... Summary ... 272

9 ... Authentication and Session Handling ... 273

9.1 ... Passport ... 273

9.2 ... Setup and Configuration ... 274

9.3 ... Logging In to the Application ... 277

9.4 ... Accessing Resources ... 285

9.5 ... Summary ... 294

10 ... REST Server ... 295

10.1 ... Introduction to REST and Usage in Web Applications ... 295

10.2 ... Accessing the Application ... 296

10.3 ... Adaptations to the Application Structure ... 297

10.4 ... Read Requests ... 298

10.5 ... Write Requests ... 309

10.6 ... Authentication via JWTs ... 316

10.7 ... OpenAPI Specification: Documentation with Swagger ... 324

10.8 ... Validation ... 329

10.9 ... Summary ... 335

11 ... GraphQL ... 337

11.1 ... GraphQL Libraries ... 338

11.2 ... Integration with Express ... 339

11.3 ... GraphiQL ... 341

11.4 ... Reading Data via the Interface ... 342

11.5 ... Write Accesses to the GraphQL Interface ... 347

11.6 ... Authentication for the GraphQL Interface ... 353

11.7 ... Summary ... 355

12 ... Real-Time Web Applications ... 357

12.1 ... The Sample Application ... 358

12.2 ... Setup ... 358

12.3 ... WebSockets ... 364

12.4 ... Socket.IO ... 377

12.5 ... Summary ... 383

13 ... Type-Safe Applications in Node.js ... 385

13.1 ... Type Systems for Node.js ... 386

13.2 ... Tools and Configuration ... 392

13.3 ... Basic Principles ... 398

13.4 ... Classes ... 403

13.5 ... Interfaces ... 406

13.6 ... Type Aliases in TypeScript ... 408

13.7 ... Generics ... 409

13.8 ... TypeScript in Use in a Node.js Application ... 410

13.9 ... Summary ... 412

14 ... Web Applications with Nest ... 413

14.1 ... Installation and Getting Started with Nest ... 414

14.2 ... Nest Command-Line Interface ... 416

14.3 ... Structure of the Application ... 419

14.4 ... Modules: Logical Units in the Source Code ... 421

14.5 ... Controllers: Endpoints of an Application ... 423

14.6 ... Providers: Business Logic of the Application ... 428

14.7 ... Accessing Databases ... 432

14.8 ... Documenting the Endpoints with OpenAPI ... 439

14.9 ... Authentication ... 442

14.10 ... Outlook: Testing in Nest ... 449

14.11 ... Summary ... 451

15 ... Node on the Command Line ... 453

15.1 ... Basic Principles ... 453

15.2 ... Structure of a Command-Line Application ... 456

15.3 ... Accessing Input and Output ... 461

15.4 ... Tools ... 469

15.5 ... Signals ... 476

15.6 ... Exit Codes ... 478

15.7 ... Summary ... 479

16 ... Asynchronous Programming ... 481

16.1 ... Basic Principles of Asynchronous Programming ... 481

16.2 ... Running External Commands Asynchronously ... 486

16.3 ... Creating Node.js Child Processes with fork Method ... 492

16.4 ... The cluster Module ... 496

16.5 ... Worker Threads ... 504

16.6 ... Promises in Node.js ... 507

16.7 ... Async Functions ... 514

16.8 ... Summary ... 517

17 ... RxJS ... 519

17.1 ... Basic Principles ... 520

17.2 ... Operators ... 525

17.3 ... Subjects ... 540

17.4 ... Schedulers ... 542

17.5 ... Summary ... 543

18 ... Streams ... 545

18.1 ... Introduction ... 545

18.2 ... Readable Streams ... 548

18.3 ... Writable Streams ... 559

18.4 ... Duplex Streams ... 566

18.5 ... Transform Streams ... 568

18.6 ... Gulp ... 570

18.7 ... Summary ... 572

19 ... Working with Files ... 573

19.1 ... Synchronous and Asynchronous Functions ... 573

19.2 ... Existence of Files ... 575

19.3 ... Reading Files ... 576

19.4 ... Error Handling ... 582

19.5 ... Writing to Files ... 582

19.6 ... Directory Operations ... 586

19.7 ... Advanced Operations ... 589

19.8 ... Summary ... 594

20 ... Socket Server ... 595

20.1 ... Unix Sockets ... 596

20.2 ... Windows Pipes ... 602

20.3 ... TCP Sockets ... 603

20.4 ... UDP Sockets ... 610

20.5 ... Summary ... 614

21 ... Package Manager ... 615

21.1 ... Most Common Operations ... 616

21.2 ... Advanced Operations ... 627

21.3 ... Tools for Node Package Manager ... 634

21.4 ... Yarn ... 637

21.5 ... Summary ... 638

22 ... Quality Assurance ... 641

22.1 ... Style Guides ... 642

22.2 ... Linter ... 643

22.3 ... Prettier ... 648

22.4 ... Programming Mistake Detector: Copy/Paste Detector ... 649

22.5 ... Husky ... 652

22.6 ... Summary ... 653

23 ... Testing ... 655

23.1 ... Unit Testing ... 655

23.2 ... Assertion Testing ... 658

23.3 ... Jasmine ... 663

23.4 ... Jest ... 671

23.5 ... Practical Example of Unit Tests with Jest ... 674

23.6 ... Dealing with Dependencies: Mocking ... 679

23.7 ... Summary ... 681

24 ... Security ... 683

24.1 ... Filter Input and Escape Output ... 684

24.2 ... Protecting the Server ... 686

24.3 ... Node Package Manager Security ... 704

24.4 ... Client Protection ... 707

24.5 ... Summary ... 711

25 ... Scalability and Deployment ... 713

25.1 ... Deployment ... 713

25.2 ... Tool Support ... 720

25.3 ... Scaling ... 721

25.4 ... pm2: Process Management ... 730

25.5 ... Docker ... 730

25.6 ... Summary ... 732

26 ... Performance ... 733

26.1 ... You Aren¿t Gonna Need It ... 733

26.2 ... CPU ... 734

26.3 ... Memory ... 741

26.4 ... Network ... 747

26.5 ... Summary ... 751

27 ... Microservices with Node.js ... 753

27.1 ... Basic Principles ... 753

27.2 ... Architecture ... 756

27.3 ... Infrastructure ... 758

27.4 ... Asynchronous Microservice with RabbitMQ ... 759

27.5 ... API Gateway ... 768

27.6 ... Synchronous Microservice with Express ... 780

27.7 ... Summary ... 789

28 ... Deno ... 791

28.1 ... The Ten Things Ryan Dahl Regrets about Node.js ... 791

28.2 ... Installing Deno ... 793

28.3 ... Execution ... 795

28.4 ... Handling Files ... 796

28.5 ... Web Server with Deno ... 803

28.6 ... Module System ... 804

28.7 ... Summary ... 809

... The Author ... 811

... Index ... 813

Node.js

The Comprehensive Guide

Buch (Taschenbuch, Englisch)

48,99 €

inkl. gesetzl. MwSt.

Beschreibung

Details

Einband

Taschenbuch

Erscheinungsdatum

06.01.2023

Verlag

Rheinwerk Publishing

Seitenzahl

834

Maße (L/B/H)

25,3/17,8/4,2 cm

Beschreibung

Details

Einband

Taschenbuch

Erscheinungsdatum

06.01.2023

Verlag

Rheinwerk Publishing

Seitenzahl

834

Maße (L/B/H)

25,3/17,8/4,2 cm

Gewicht

1458 g

Auflage

1

Sprache

Englisch

ISBN

978-1-4932-2292-6

Weitere Bände von Rheinwerk Computing

Unsere Kundinnen und Kunden meinen

0.0

0 Bewertungen

Informationen zu Bewertungen

Zur Abgabe einer Bewertung ist eine Anmeldung im Konto notwendig. Die Authentizität der Bewertungen wird von uns nicht überprüft. Wir behalten uns vor, Bewertungstexte, die unseren Richtlinien widersprechen, entsprechend zu kürzen oder zu löschen.

Verfassen Sie die erste Bewertung zu diesem Artikel

Helfen Sie anderen Kund*innen durch Ihre Meinung

Erste Bewertung verfassen

Unsere Kundinnen und Kunden meinen

0.0

0 Bewertungen filtern

  • Node.js
  • ... Foreword ... 25

    ... Preface ... 27

    ... Structure of the Book ... 28

    ... Downloading the Code Samples ... 29

    ... Acknowledgments ... 30

    1 ... Basic Principles ... 31

    1.1 ... The Story of Node.js ... 33

    1.2 ... Organization of Node.js ... 37

    1.3 ... Versioning of Node.js ... 38

    1.4 ... Benefits of Node.js ... 40

    1.5 ... Areas of Use for Node.js ... 40

    1.6 ... The Core: V8 Engine ... 41

    1.7 ... Libraries around the Engine ... 47

    1.8 ... Summary ... 53

    2 ... Installation ... 55

    2.1 ... Installing Packages ... 56

    2.2 ... Compiling and Installing ... 68

    2.3 ... Node Version Manager ... 71

    2.4 ... Node and Docker ... 71

    2.5 ... Summary ... 72

    3 ... Developing Your First Application ... 73

    3.1 ... Interactive Mode ... 73

    3.2 ... The First Application ... 79

    3.3 ... Debugging Node.js Applications ... 88

    3.4 ... nodemon Development Tool ... 98

    3.5 ... Summary ... 99

    4 ... Node.js Modules ... 101

    4.1 ... Modular Structure ... 101

    4.2 ... Core Modules ... 103

    4.3 ... JavaScript Module Systems ... 121

    4.4 ... Creating and Using Your Own Modules ... 124

    4.5 ... Summary ... 135

    5 ... HTTP ... 137

    5.1 ... Web Server ... 137

    5.2 ... Node.js as HTTP Client ... 164

    5.3 ... Secure Communication with HTTPS ... 168

    5.4 ... HTTP/2 ... 170

    5.5 ... Summary ... 175

    6 ... Express ... 177

    6.1 ... Structure ... 177

    6.2 ... Installation ... 178

    6.3 ... Basic Principles ... 179

    6.4 ... Setup ... 181

    6.5 ... Movie Database ... 185

    6.6 ... Middleware ... 193

    6.7 ... Extended Routing: Deleting Data Records ... 199

    6.8 ... Creating and Editing Data Records: Body Parser ... 201

    6.9 ... Express 5 ... 208

    6.10 ... HTTPS and HTTP/2 ... 209

    6.11 ... Summary ... 212

    7 ... Template Engines ... 213

    7.1 ... Custom Template Engine ... 214

    7.2 ... Template Engines in Practice: Pug ... 215

    7.3 ... Handlebars ... 229

    7.4 ... Summary ... 239

    8 ... Connecting Databases ... 241

    8.1 ... Node.js and Relational Databases ... 242

    8.2 ... Node.js and Nonrelational Databases ... 260

    8.3 ... Summary ... 272

    9 ... Authentication and Session Handling ... 273

    9.1 ... Passport ... 273

    9.2 ... Setup and Configuration ... 274

    9.3 ... Logging In to the Application ... 277

    9.4 ... Accessing Resources ... 285

    9.5 ... Summary ... 294

    10 ... REST Server ... 295

    10.1 ... Introduction to REST and Usage in Web Applications ... 295

    10.2 ... Accessing the Application ... 296

    10.3 ... Adaptations to the Application Structure ... 297

    10.4 ... Read Requests ... 298

    10.5 ... Write Requests ... 309

    10.6 ... Authentication via JWTs ... 316

    10.7 ... OpenAPI Specification: Documentation with Swagger ... 324

    10.8 ... Validation ... 329

    10.9 ... Summary ... 335

    11 ... GraphQL ... 337

    11.1 ... GraphQL Libraries ... 338

    11.2 ... Integration with Express ... 339

    11.3 ... GraphiQL ... 341

    11.4 ... Reading Data via the Interface ... 342

    11.5 ... Write Accesses to the GraphQL Interface ... 347

    11.6 ... Authentication for the GraphQL Interface ... 353

    11.7 ... Summary ... 355

    12 ... Real-Time Web Applications ... 357

    12.1 ... The Sample Application ... 358

    12.2 ... Setup ... 358

    12.3 ... WebSockets ... 364

    12.4 ... Socket.IO ... 377

    12.5 ... Summary ... 383

    13 ... Type-Safe Applications in Node.js ... 385

    13.1 ... Type Systems for Node.js ... 386

    13.2 ... Tools and Configuration ... 392

    13.3 ... Basic Principles ... 398

    13.4 ... Classes ... 403

    13.5 ... Interfaces ... 406

    13.6 ... Type Aliases in TypeScript ... 408

    13.7 ... Generics ... 409

    13.8 ... TypeScript in Use in a Node.js Application ... 410

    13.9 ... Summary ... 412

    14 ... Web Applications with Nest ... 413

    14.1 ... Installation and Getting Started with Nest ... 414

    14.2 ... Nest Command-Line Interface ... 416

    14.3 ... Structure of the Application ... 419

    14.4 ... Modules: Logical Units in the Source Code ... 421

    14.5 ... Controllers: Endpoints of an Application ... 423

    14.6 ... Providers: Business Logic of the Application ... 428

    14.7 ... Accessing Databases ... 432

    14.8 ... Documenting the Endpoints with OpenAPI ... 439

    14.9 ... Authentication ... 442

    14.10 ... Outlook: Testing in Nest ... 449

    14.11 ... Summary ... 451

    15 ... Node on the Command Line ... 453

    15.1 ... Basic Principles ... 453

    15.2 ... Structure of a Command-Line Application ... 456

    15.3 ... Accessing Input and Output ... 461

    15.4 ... Tools ... 469

    15.5 ... Signals ... 476

    15.6 ... Exit Codes ... 478

    15.7 ... Summary ... 479

    16 ... Asynchronous Programming ... 481

    16.1 ... Basic Principles of Asynchronous Programming ... 481

    16.2 ... Running External Commands Asynchronously ... 486

    16.3 ... Creating Node.js Child Processes with fork Method ... 492

    16.4 ... The cluster Module ... 496

    16.5 ... Worker Threads ... 504

    16.6 ... Promises in Node.js ... 507

    16.7 ... Async Functions ... 514

    16.8 ... Summary ... 517

    17 ... RxJS ... 519

    17.1 ... Basic Principles ... 520

    17.2 ... Operators ... 525

    17.3 ... Subjects ... 540

    17.4 ... Schedulers ... 542

    17.5 ... Summary ... 543

    18 ... Streams ... 545

    18.1 ... Introduction ... 545

    18.2 ... Readable Streams ... 548

    18.3 ... Writable Streams ... 559

    18.4 ... Duplex Streams ... 566

    18.5 ... Transform Streams ... 568

    18.6 ... Gulp ... 570

    18.7 ... Summary ... 572

    19 ... Working with Files ... 573

    19.1 ... Synchronous and Asynchronous Functions ... 573

    19.2 ... Existence of Files ... 575

    19.3 ... Reading Files ... 576

    19.4 ... Error Handling ... 582

    19.5 ... Writing to Files ... 582

    19.6 ... Directory Operations ... 586

    19.7 ... Advanced Operations ... 589

    19.8 ... Summary ... 594

    20 ... Socket Server ... 595

    20.1 ... Unix Sockets ... 596

    20.2 ... Windows Pipes ... 602

    20.3 ... TCP Sockets ... 603

    20.4 ... UDP Sockets ... 610

    20.5 ... Summary ... 614

    21 ... Package Manager ... 615

    21.1 ... Most Common Operations ... 616

    21.2 ... Advanced Operations ... 627

    21.3 ... Tools for Node Package Manager ... 634

    21.4 ... Yarn ... 637

    21.5 ... Summary ... 638

    22 ... Quality Assurance ... 641

    22.1 ... Style Guides ... 642

    22.2 ... Linter ... 643

    22.3 ... Prettier ... 648

    22.4 ... Programming Mistake Detector: Copy/Paste Detector ... 649

    22.5 ... Husky ... 652

    22.6 ... Summary ... 653

    23 ... Testing ... 655

    23.1 ... Unit Testing ... 655

    23.2 ... Assertion Testing ... 658

    23.3 ... Jasmine ... 663

    23.4 ... Jest ... 671

    23.5 ... Practical Example of Unit Tests with Jest ... 674

    23.6 ... Dealing with Dependencies: Mocking ... 679

    23.7 ... Summary ... 681

    24 ... Security ... 683

    24.1 ... Filter Input and Escape Output ... 684

    24.2 ... Protecting the Server ... 686

    24.3 ... Node Package Manager Security ... 704

    24.4 ... Client Protection ... 707

    24.5 ... Summary ... 711

    25 ... Scalability and Deployment ... 713

    25.1 ... Deployment ... 713

    25.2 ... Tool Support ... 720

    25.3 ... Scaling ... 721

    25.4 ... pm2: Process Management ... 730

    25.5 ... Docker ... 730

    25.6 ... Summary ... 732

    26 ... Performance ... 733

    26.1 ... You Aren¿t Gonna Need It ... 733

    26.2 ... CPU ... 734

    26.3 ... Memory ... 741

    26.4 ... Network ... 747

    26.5 ... Summary ... 751

    27 ... Microservices with Node.js ... 753

    27.1 ... Basic Principles ... 753

    27.2 ... Architecture ... 756

    27.3 ... Infrastructure ... 758

    27.4 ... Asynchronous Microservice with RabbitMQ ... 759

    27.5 ... API Gateway ... 768

    27.6 ... Synchronous Microservice with Express ... 780

    27.7 ... Summary ... 789

    28 ... Deno ... 791

    28.1 ... The Ten Things Ryan Dahl Regrets about Node.js ... 791

    28.2 ... Installing Deno ... 793

    28.3 ... Execution ... 795

    28.4 ... Handling Files ... 796

    28.5 ... Web Server with Deno ... 803

    28.6 ... Module System ... 804

    28.7 ... Summary ... 809

    ... The Author ... 811

    ... Index ... 813