- async p47
- error-first-callback p47
- Threaded versus event-driven architecture p14
- Performance and utilization p17
- Embracing advances in the Javascript language p22
- Deploying ES2015/2016/2017/2018 JavaScript code p24
- Node.js, the microservice architecture, and easily testable systems p25
- System Requirements p27
- Installing Node.js using package managers p28
- Installing multiple Node.js instances with nvm
- Conversion to async functions and the Promise paradigm p47
- In the previous section we discussed the
util.promisify
and its ability to convert a callback-oriented function into one that returns a Promise. p47
- In the previous section we discussed the
- Launching a server with Node.js p48
- Demonstrating module-level encapsulation p69
- Sending and Receiving events with EventEmitters p97
- Javascript classes and class inheritance p98
- The EventEmitter Class p99
- The EventEmitter theory p101
- HTTP server applicatons p103
- ES2015 multiline and template strings p106
- HTTP Sniffer - listening to the HTTP conversation p108
- Web application frameworks p110
- Getting started with Express p111
- Walking through the default Express application p116
- The Express middleware p120
- Making HTTP Client requests p134
- Callling a REST backend service from an Express application p136
- Implementing a simple REST server with Express p137
- Refactoring the Fibonacci application for REST p140
- Promises, async functions, and Express router functions p145
- Promises and error handling p148
- Flattening our asynchronous code p149
- Promises and generators birthed async functions p149
- Express and the MVC paradigm p153
- Theming your Express application p171
- Problem - the Notes app isn't mobile friendly p178
- Mobile-first paradigm p179
- Using TWitter Bootstrap for the Notes application p181
- Setting it up p183
- Adding Bootstrap to application templates p183
- Alternative layout frameworks p185
- Flexbox and CSS Grids p185
- Mobile-first design for the Notes application p186
- Building a customized bootstrap p198
- Summary p204
- Data storage and asynchronous code p207
- Logging p208
- Request logging with Morgan p209
- Debugging Messages p211
- Capturing stdout and stderr
- Uncaught exceptions p212
- Unhandled Promise rejections p213
- Using the ES6 module format p213
- Rewriting app.js as an ES6 module p213
- Rewriting bin/www as an ES6 module p216
- Rewriting models code as ES6 modules p216
- Rewriting router modules as ES6 modules p218
- Notes application architecture and deployment considerations p332
- Traditional Linux Node.js service deployment p333
- Node.js microservice deployment with Docker p345
- Summary p389
- Testsing REST backend services p414