Categories
Artificial Intelligence AWS Azure Bibliography C# .NET Cloud Data Science - Big Data DevOps DevSecOps-Security-Privacy GCP Go Programming Language Java JavaScript Kotlin Kubernetes Linux Networking Operating Systems PowerShell Python React Software Engineering Spring Framework Swift TypeScript Vue.js Framework

Manning Publications

See also Java Bibliography, JavaScript Bibliography, Python Bibliography

Manning publishes the best quality IT books in the industry.

Manning is an independent publisher, providing computer books for software developers, engineers, architects, system administrators, and managers. Our books also cover topics for young programmers, students, and occasionally children.

summary

Manning is an independent publisher of computer books and video courses for software developers, engineers, architects, system administrators, managers and all who are professionally involved with the computer business. We also publish for students and young programmers, including occasionally for children. We are an entirely virtual organization based on Shelter Island, New York, with many staff working from far-flung places like Manila and Zagreb.

company character

“Independent” means we are not owned by a large corporate entity and are free to make decisions without bureaucratic overhead. That has allowed us to innovate and be flexible and to quickly adjust what we do as we go. We were the first by several years to sell our books as unprotected PDFs, something that later became commonplace. We were the first to start selling books before they were finished, in the Manning Early Access Program. This gave our readers access to our content as soon as it was readable, and this too has become common in the industry. And it means we are thinking every day about new ways to satisfy our customers, some of which we hope you will be pleased to discover in the not-too-distant future.

how we improve

We published our first book in 1993 and have been learning from our successes, and even more from our mistakes, ever since. Every new book teaches us something that helps us improve:

  • How to choose the topics we publish on
  • How to find the right authors for each book
  • How to help authors write the best books they can
  • How to ensure the content is valuable and easy to learn
  • How to let readers know about our content

book series

We publish standalone titles as well as the following book series:

  • Hello!
  • In Action
  • In Practice
  • In Depth
  • In a Month of Lunches

availability

Readers can access our books through the Manning Early Access Program, O’Reilly Learning (formerly Safari Books Online), and iBooks. Print copies, wherever they are bought, come with free electronic versions in PDF, ePub and Kindle formats. With your print copy in hand, register it on the Manning site and you can download the digital versions from your account.

At this time, our eBooks are available only from Manning.com and Apple’s iBookstore.

https://www.manning.com/manning

Sources:

Fair Use Sources:

Categories
JavaScript React Software Engineering

React.js Bibliography

See also: Awesome React, React Frameworks built on the React Library, React library, JavaScript, JavaScript Library and Framework Bibliography

Books on React.js:

Sources:

Fair Use Sources:

Categories
JavaScript React Software Engineering

React Frameworks built on the React Library

See also: React library, Awesome React, React.js Bibliography, JavaScript, JavaScript Bibliography, JavaScript Library and Framework Bibliography, JavaScript Reference materials

Sources:

Fair Use Sources:

Categories
Bibliography JavaScript Software Engineering

Get Programming with JavaScript, by John Larsen

See also: JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

Get Programming with JavaScript, 1st Edition, by John Larsen, 2016, 1617293105 (GtPgJs)

Fair Use Source: 1617293105 (GtPgJs)

About This Book:

Get Programming with JavaScript is a hands-on introduction to programming for readers who have never programmed. You’ll be writing your own web apps, games, and programs in no time!

Are you ready to start writing your own web apps, games, and programs? You’re in the right place! Get Programming with JavaScript is a hands-on introduction to programming for readers who have never written a line of code. Since you’re just getting started, this friendly book offers you lots of examples backed by careful explanations. As you go along, you’ll find exercises to check your understanding and plenty of opportunities to practice your new skills. You don’t need anything special to follow the examples-just the text editor and web browser already installed on your computer. We even give you links to working online code so you can see how everything should look live on your screen.

What’s inside:
  • All the basics-objects, functions, responding to users, and more
  • Think like a coder and design your own programs
  • Create a text-based adventure game
  • Enhance web pages with JavaScript
  • Run your programs in a web browser
  • Four bonus chapters available online

About the Author:

John Larsen is a mathematics and computing teacher with an interest in educational research. He has an MA in mathematics and an MSc in information technology. He started programming in 1982, writing simple programs for teaching mathematics in 1993, building websites in 2001, and developing data-driven web-based applications for education in 2006.

Book Details:

  • ISBN-10: 1617293105
  • ISBN-13: 978-1617293108
  • Publisher: Manning Publications; 1st edition (August 29, 2016)
  • Paperback: 432 pages

Table of Contents:

Sources:

Fair Use Sources:

Categories
Bibliography JavaScript Software Engineering

Get Programming with JavaScript Next: New features of ECMAScript 2015, 2016, and beyond

See also: JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

Get Programming with JavaScript Next: New features of ECMAScript 2015, 2016, and beyond, 1st Edition, by J.D. Isaacks, 2018, 1617294209 (GtPgJsN)

Fair Use Source: 1617294209 (GtPgJsN)

About This Book:

Get Programming with JavaScript Next introduces the modern age of JavaScript programming with ES6 and ES7 without dragging you through confusing jargon and abstract examples you’ll never use. In just 34 quick-fire sessions, you’ll quickly be coding with the latest features and functions of ES6 and ES7!

Get Programming with JavaScript Next introduces you to the new features included in the ES2015-and-later JavaScript releases. You’ll learn example by example in 34 short lessons, each designed to drive home a specific skill. The coverage is complete: you’ll explore new language syntax, declarations, and data types. You’ll structure code with modules, replace callbacks with promises, and use classes instead of constructors. Every time you turn a page, complete an exercise, or study a carefully crafted illustration, you’ll be one step closer to JavaScript mastery.

About the Technology:

Great code is readable, bug-free, and maintainable. Modern JavaScript, aka JavaScript Next, makes it much, much easier to write great applications. New features introduced in ES2015 simplify the structure of your JavaScript projects and radically streamline async-oriented tasks like writing reactive applications and microservices.

Reviews:

“A great resource to quickly get up to speed on everything ES6 and beyond. Everything you need, nothing you don’t!” — Mike Jensen, UrbanStems

“A must-read for JS developers who want to be more productive by using the features and functionality of the new ECMAScript.” — Ali Naqvi, IBM

“The language has evolved, and with this book you’re ready to evolve with it.” — Ethien Daniel Salinas Dominguez, Creze

“The most comprehensive content that I have seen on JavaScript Next. Highly recommended.” — Matteo Gildone, Springer Nature

About the Author:

J.D. Isaacks is a seasoned developer, a JavaScript instructor, and an open source maintainer.

Book Details:

  • ISBN-10: 1617294209
  • ISBN-13: 978-1617294204
  • Publisher: Manning Publications; 1st edition (May 18, 2018)
  • Paperback: 376 pages

Table of Contents:

Brief Table of Contents:

Copyright

Brief Table of Contents

Table of Contents

Preface

Acknowledgments

About this book

About the author

Lesson 1. ECMAScript specification and the proposal process

Lesson 2. Transpiling with Babel

Lesson 3. Bundling modules with Browserify

Unit 1. Variables and strings

Lesson 4. Declaring variables with let

Lesson 5. Declaring constants with const

Lesson 6. New string methods

Lesson 7. Template literals

Lesson 8. Capstone: Building a domain-specific language

Unit 2. Objects and arrays

Lesson 9. New array methods

Lesson 10. Object.assign

Lesson 11. Destructuring

Lesson 12. New object literal syntax

Lesson 13. Symbol—a new primitive

Lesson 14. Capstone: Simulating a lock and key

Unit 3. Functions

Lesson 15. Default parameters and rest

Lesson 16. Destructuring parameters

Lesson 17. Arrow functions

Lesson 18. Generator functions

Lesson 19. Capstone: The prisoner’s dilemma

Unit 4. Modules

Lesson 20. Creating modules

Lesson 21. Using modules

Lesson 22. Capstone: Hangman game

Unit 5. Iterables

Lesson 23. Iterables

Lesson 24. Sets

Lesson 25. Maps

Lesson 26. Capstone: Blackjack

Unit 6. Classes

Lesson 27. Classes

Lesson 28. Extending classes

Lesson 29. Capstone: Comets

Unit 7. Working asynchronously

Lesson 30. Promises

Lesson 31. Advanced promises

Lesson 32. Async functions

Lesson 33. Observables

Lesson 34. Capstone: Canvas image gallery

Exercise answers

Here’s a preview of some of the new syntaxes you’ll learn in unit 2

Here’s a preview of using promises and async functions from unit 7

Index

List of Figures

List of Tables

List of Listings

Detailed Table of Contents:

Copyright

Brief Table of Contents

Table of Contents

Preface

Acknowledgments

About this book

About the author

Lesson 1. ECMAScript specification and the proposal process

1.1. A brief history of ECMAScript

1.2. Why ES2015 adds so much

1.3. Who decides what gets added?

1.3.1. Specification stages

1.3.2. Picking a stage

1.4. What this book will cover

Summary

Lesson 2. Transpiling with Babel

2.1. What is transpiling?

2.1.1. Compiling to JavaScript languages

2.1.2. Where Babel fits in

2.2. Setting up Babel 6

2.3. The Babel configuration needed for this book

2.3.1. A note on source maps

2.3.2. Set up Babel as NPM script

Summary

Lesson 3. Bundling modules with Browserify

3.1. What’s a module?

3.2. How modules work in Node.js

3.3. What is Browserify?

3.4. How does Browserify help with ES6 modules?

3.5. Setting up Browserify with Babel

3.5.1. Installing Browserify

3.5.2. Setting up a project using babelify

3.6. Alternatives to Browserify

Summary

Unit 1. Variables and strings

Lesson 4. Declaring variables with let

4.1. How scope works with let

4.1.1. Why the block scope of let is preferred

4.2. How hoisting works with let

4.3. Should I use let instead of var from now on?

Summary

Lesson 5. Declaring constants with const

5.1. How constants work

5.2. When to use constants

Summary

Lesson 6. New string methods

6.1. Searching strings

6.2. Padding strings

Summary

Lesson 7. Template literals

7.1. What are template literals?

7.1.1. String interpolation with template literals

7.1.2. Multiline strings with template literals

7.2. Template literals are not reusable templates

7.3. Custom processing with tagged template literals

Summary

Lesson 8. Capstone: Building a domain-specific language

8.1. Creating some helper functions

8.2. Create an HTML-escaping DSL

8.3. Create a DSL for converting arrays into HTML

Summary

Unit 2. Objects and arrays

Lesson 9. New array methods

9.1. Constructing arrays with Array.from

9.2. Constructing arrays with Array.of

9.3. Constructing Arrays with Array.prototype.fill

9.4. Searching in arrays with Array.prototype.includes

9.5. Searching in arrays with Array.prototype.find

Summary

Lesson 10. Object.assign

10.1. Setting default values with Object.assign

10.2. Extending objects with Object.assign

10.3. Preventing mutations when using Object.assign

10.4. How Object.assign assigns values

Summary

Lesson 11. Destructuring

11.1. Destructuring objects

11.2. Destructuring arrays

11.3. Combining array and object destructuring

11.4. What types can be destructured

Summary

Lesson 12. New object literal syntax

12.1. Shorthand property names

12.2. Shorthand method names

12.3. Computed property names

Summary

Lesson 13. Symbol—a new primitive

13.1. Using symbols as constants

13.2. Using symbols as object keys

13.3. Creating behavior hooks with global symbols

13.4. Modifying object behavior with well-known symbols

13.5. Symbol gotchas

Summary

Lesson 14. Capstone: Simulating a lock and key

14.1. Creating the lock and key system

14.2. Creating a Choose the Door game

Summary

Unit 3. Functions

Lesson 15. Default parameters and rest

15.1. Default parameters

15.2. Using default params to skip recalculating values

15.3. Gathering parameters with the rest operator

15.4. Using rest to pass arguments between functions

Summary

Lesson 16. Destructuring parameters

16.1. Destructuring array parameters

16.2. Destructuring object parameters

16.3. Simulating named parameters

16.4. Creating aliased parameters

Summary

Lesson 17. Arrow functions

17.1. Succinct code with arrow functions

17.2. Maintaining context with arrow functions

17.3. Arrow function gotchas

Summary

Lesson 18. Generator functions

18.1. Defining generator functions

18.2. Using generator functions

18.3. Creating infinite lists with generator functions

Summary

Lesson 19. Capstone: The prisoner’s dilemma

19.1. Generating prisoners

19.2. Getting prisoners to interact

19.3. Getting and storing the results

19.4. Putting the simulation together

19.5. Which prisoner does best?

Summary

Unit 4. Modules

Lesson 20. Creating modules

20.1. Module rules

20.2. Creating modules

20.3. When does a JavaScript file become a module?

Summary

Lesson 21. Using modules

21.1. Specifying a module’s location

21.2. Importing values from modules

21.3. How imported values are bound

21.4. Importing side effects

21.5. Breaking apart and organizing modules

Summary

Lesson 22. Capstone: Hangman game

22.1. Planning

22.2. The words module

22.3. The status module

22.4. The game’s interface modules

22.5. The index

Summary

Unit 5. Iterables

Lesson 23. Iterables

23.1. Iterables—what are they?

23.2. The for..of statement

23.3. Spread

23.3.1. Using spread as an immutable push

23.4. Iterators—looking under the hood of iterables

Summary

Lesson 24. Sets

24.1. Creating sets

24.2. Using sets

24.3. What about the WeakSet?

Summary

Lesson 25. Maps

25.1. Creating maps

25.2. Using maps

25.3. When to use maps

25.4. What about the WeakMap?

Summary

Lesson 26. Capstone: Blackjack

26.1. The cards and the deck

26.2. Making the CPU’s turn slow enough to see

26.3. Putting the pieces together

Summary

Unit 6. Classes

Lesson 27. Classes

27.1. Class declarations

27.2. Instantiating classes

27.3. Exporting classes

27.4. Class methods are not bound

27.5. Setting instance properties in class definitions

27.6. Static properties

Summary

Lesson 28. Extending classes

28.1. Extends

28.2. Super

28.3. A common gotcha when extending classes

Summary

Lesson 29. Capstone: Comets

29.1. Creating a controllable sprite

29.2. Adding comets

29.3. Shooting rockets

29.4. When things collide

29.5. Adding explosions

Summary

Unit 7. Working asynchronously

Lesson 30. Promises

30.1. Using promises

30.2. Error handling

30.3. Promise helpers

Summary

Lesson 31. Advanced promises

31.1. Creating promises

31.2. Nested promises

31.3. Catching errors

Summary

Lesson 32. Async functions

32.1. Asynchronous code with generators

32.2. Async functions

32.3. Error handling in async functions

Summary

Lesson 33. Observables

33.1. Creating observables

33.2. Composing observables

33.3. Creating observable combinators

Summary

Lesson 34. Capstone: Canvas image gallery

34.1. Fetching images

34.2. Painting the images on the canvas

34.3. Repeating the process

Summary

Exercise answers

Lesson 4

Lesson 5

Lesson 6

Lesson 7

Lesson 9

Lesson 10

Lesson 11

Lesson 12

Lesson 13

Lesson 15

Lesson 16

Lesson 17

Lesson 18

Lesson 20

Lesson 21

Lesson 23

Lesson 24

Lesson 25

Lesson 27

Lesson 28

Lesson 30

Lesson 31

Lesson 32

Lesson 33

Sources:

Fair Use Sources:

Categories
Bibliography JavaScript Software Engineering

JavaScript Reference Materials

See also: JavaScript, and Bibliography of JavaScript Libraries and Web Frameworks

Best JavaScript programming reference books: Full list at JavaScript Bibliography

Best reference sites for Web development via HTML and JavaScript programming:

*There is some controversy over the quality and accuracy of the information in the tutorials offered by W3Schools. Not as many, however, take issue with the reference section.

Sources:

Fair Use Sources:

Categories
Bibliography JavaScript Software Engineering

MDN JavaScript Reference Mozilla Developer Network Developer.Mozilla.org – MDN Web Docs

See also: JavaScript Reference Materials, JavaScript, JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

MDN JavaScript Reference Mozilla Developer Network Developer.Mozilla.org (MDNJsR)

MDN Web Docs.svg
Type of siteWiki
Available inEnglish
Chinese
French
Japanese
Other locales are unmaintained as of December 14, 2020[1]
OwnerMozilla
URLdeveloper.mozilla.org
CommercialNo
RegistrationOptional, required to edit content
Launched2005; 16 years ago
Current statusOnline
Content licenseCC-BY-SA v2.5+ et al.
Written inReact
SCSSJSXJavaScriptPython

MDN Web Docs, previously Mozilla Developer Network and formerly Mozilla Developer Center, is a documentation repository and learning resource for web developers used by MozillaMicrosoftGoogle, and Samsung. The project was started by Mozilla in 2005[2] as a unified place for documentation about open web standards, Mozilla’s own projects, and developer guides.[3] In 2017, Microsoft, Google, and Samsung announced that they would shut down their own documentation projects and move all their documentation to MDN Web Docs.[4]

MDN Web Docs content is maintained by Mozilla and Google employees and volunteers (community of developers and technical writers). Topics include HTML5JavaScriptCSSWeb APIsDjangoNode.jsWebExtensionsMathML, and others.[5]

MDN JavaScript Reference Mozilla Developer Network Developer.Mozilla.org (MDNJsR)

History

In 2005, Mozilla Corporation started the project under the name Mozilla Developer Center.[2] Mozilla Corporation still funds servers and employs staff working on the projects.

The initial content for the website was provided by DevEdge, for which the Mozilla Foundation was granted a license by AOL.[6][2] The site now contains a mix of content migrated from DevEdge and mozilla.org, as well as original and more up-to-date content.[7][8] Documentation was also migrated from XULPlanet.com.

On Oct 3, 2016, Brave browser added Mozilla Developer Network as one of its default search engines options.[9]

In 2017, MDN Web Docs became the unified documentation of web technology for Google, Samsung, Microsoft, and Mozilla.[10][4] Microsoft started redirecting pages from MSDN to MDN.[11]

In 2019, Mozilla started Beta testing a new reader site for MDN Web Docs written in React (instead of jQuery; some jQuery functionality was replaced with Cheerio library).[12] The new site was launched on December 14, 2020.[13] Since December 14, 2020, all editable content is stored in a git repository hosted on GitHub, where contributors open pull requests and discuss changes.[1]

On January 25 2021,[14] Open Web Docs organization was launched as a non-profit fiscal entity to collect funds for MDN development.[15] As of February 2021, OWD top financial contributors are MicrosoftGoogle, Coil, and Igalia.[16]

See also

References

  1. a b “An update on MDN Web Docs’ localization strategy – Mozilla Hacks – the Web developer blog”Mozilla Hacks – the Web developer blog. Retrieved 2021-02-01.
  2. a b c Mitchell Baker (2005-02-23). “DevMo and DevEdge updates”. Retrieved 2008-05-31.
  3. ^ Willison, Simon (2005-09-15). “The Mozilla Developer Center”SitePoint. Retrieved 2012-08-19.
  4. a b Tung, Liam (2017-10-19). “Developers rejoice: Microsoft, Google, Mozilla are putting all their web API docs in one place”ZDNet.
  5. ^ Ten Things Developers should know about the Mozilla Developer Network (MDN)
  6. ^ “About”. Mozilla Developer Center. Archived from the original on 2007-10-20. Retrieved 2009-01-30.
  7. ^ “DevEdge”. Mozilla Developer Center. Archived from the originalon 2007-10-26. Retrieved 2009-01-30.
  8. ^ Deb Richardson (2006-02-10). “Digging through the DevEdge archives”mozilla.dev.mdc. Google Groups. Retrieved 2008-05-31.
  9. ^ “Brave Browser 0.12.3 Release Note”Github. Retrieved 16 August2017.
  10. ^ Knox, Dru (2017-10-18). “Building unified documentation for the web”Chromium Blog.
  11. ^ Erika Doyle Navara (2017-10-18). “Documenting the Web together”Windows Blogs.
  12. ^ R, Bhagyashree (2019-07-17). “Mozilla’s MDN Web Docs gets new React-powered frontend, which is now in Beta”Packt Hub. Retrieved 2019-07-18.
  13. ^ “Welcome Yari: MDN Web Docs has a new platform – Mozilla Hacks – the Web developer blog”Mozilla Hacks – the Web developer blog. Retrieved 2021-02-01.
  14. ^ “OWD Steering Committee call, 2021-01-20”GitHub. 2021-01-20. Archived from the original on 2021-02-01. Retrieved 2021-02-01. OWD will go public on Monday, January 25th.
  15. ^ “Welcoming Open Web Docs to the MDN family – Mozilla Hacks – the Web developer blog”Mozilla Hacks – the Web developer blog. Retrieved 2021-02-01.
  16. ^ “Open Web Docs – Open Collective”opencollective.com. Retrieved 2021-02-01

Categories


https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference

https://github.com/mdn

JavaScript Reference

This part of the JavaScript section on MDN serves as a repository of facts about the JavaScript language.

About the JavaScript reference

The JavaScript reference serves as a repository of facts about the JavaScript language. The entire language is described here in detail. As you write JavaScript code, you’ll refer to these pages often (thus the title “JavaScript reference”). If you’re learning JavaScript, or need help understanding some of its capabilities or features, check out the JavaScript guide.

The JavaScript language is intended to be used within some larger environment, be it a browser, server-side scripts, or similar. For the most part, this reference attempts to be environment-agnostic and does not target a web browser environment.

Where to find JavaScript information

JavaScript documentation of core language features (pure ECMAScript, for the most part) includes the following:

If you are new to JavaScript, start with the guide. Once you have a firm grasp of the fundamentals, you can use the reference to get more details on individual objects and language constructs.

Structure of the reference

In the JavaScript reference you can find the following chapters:Standard built-in objectsThis chapter documents all the JavaScript standard built-in objects, along with their methods and properties.Statements and declarationsJavaScript applications consist of statements with an appropriate syntax. A single statement may span multiple lines. Multiple statements may occur on a single line if each statement is separated by a semicolon. This isn’t a keyword, but a group of keywords.Expressions and operatorsThis chapter documents all the JavaScript language operators, expressions and keywords.FunctionsChapter about JavaScript functions.ClassesChapter about JavaScript classes introduced in ECMAScript 2015.ErrorsChapter about specific errors, exceptions and warnings thrown by JavaScript.New in JavaScriptChapter about JavaScript version history.

More reference pages

Fair Use Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/About

Built-ins

JavaScript standard built-in objects, along with their methods and properties.

Value properties

Function properties

Fundamental objects

Error objects

Numbers & dates

Text processing

Indexed Collections

Keyed collections

Structured data

Control abstraction

Reflection

Internationalization

WebAssembly

Statements

JavaScript statements and declarations

Control flow

Declarations

Functions and classes

Iterations

Other

Expressions and operators

JavaScript expressions and operators

Primary expressions

Left-hand-side expressions

Increment & decrement

Unary operators

Arithmetic operators

Relational operators

Equality operators

Bitwise shift operators

Binary bitwise operators

Binary logical operators

Conditional (ternary) operator

Assignment operators

Functions

This chapter documents how to work with JavaScript functions to develop your applications.

Additional reference pages

Sources:

Fair Use Sources:

Categories
JavaScript Software Engineering

Angular web application framework – TypeScript-based

See also: JavaScript, JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

Angular full color logo.svg
Developer(s)Google
Initial release2.0 / 14 September 2016; 4 years ago[1]
Stable release11.2.3[2]  / 24 February 2021; 7 days ago
Preview release12.0.0-next.2 / 24 February 2021; 7 days ago[3]
RepositoryAngular Repository
Written inTypeScript
PlatformWeb platform
TypeWeb framework
LicenseMIT License
Websiteangular.io

Angular (commonly referred to as “Angular 2+” or “Angular v2 and above“)[4][5] is a TypeScript-based open-source web application framework led by the Angular Team at Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS.” (WP)

See also

External links

Categories

Sources:

Fair Use Sources:

Categories
JavaScript Software Engineering

Elm Programming language

See also: JavaScript, JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

The Elm tangram
ParadigmFunctional
Designed byEvan Czaplicki
First appearedMarch 30, 2012; 8 years ago[1]
Stable release0.19.1 / October 21, 2019; 16 months ago[2]
Typing disciplineStaticStrongInferred
LicensePermissive (Revised BSD)[3]
Filename extensions.elm
Websiteelm-lang.org 
Influenced by
HaskellStandard MLOCamlF#
Influenced
Redux,[4] Vuex[5]

Elm is a domain-specific programming language for declaratively creating web browser-based graphical user interfaces. Elm is purely functional, and is developed with emphasis on usability, performance, and robustness. It advertises “no runtime exceptions in practice”,[6] made possible by the Elm compiler’s static type checking.” (WP)

History

“Elm was initially designed by Evan Czaplicki as his thesis in 2012.[7] The first release of Elm came with many examples and an online editor that made it easy to try out in a web browser.[8] Evan joined Prezi in 2013 to work on Elm,[9] and in 2016 moved to NoRedInk as an Open Source Engineer, also starting the Elm Software Foundation.[10]” (WP)

“The initial implementation of the Elm compiler targets HTMLCSS, and JavaScript.[11] The set of core tools has continued to expand, now including a REPL,[12] package manager,[13] time-travelling debugger,[14] and installers for macOS and Windows.[15] Elm also has an ecosystem of community created libraries and Ellie, an advanced online editor that allows saved work and inclusion of community libraries.” (WP)

External links

Categories

Sources:

Fair Use Sources:

Categories
JavaScript Software Engineering

Document Object Model (DOM)

See also: JavaScript, JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

DOM-model.svg
document
First publishedOctober 1, 1998; 22 years ago
Latest versionDOM4[1]
November 19, 2015; 5 years ago
OrganizationWorld Wide Web ConsortiumWHATWG
Base standardsWHATWG DOM Living Standard
W3C DOM4
AbbreviationDOM

“The Document Object Model (DOM) is a cross-platform and language-independent interface that treats an XML or HTML document as a tree structure wherein each node is an object representing a part of the document. The DOM represents a document with a logical tree. Each branch of the tree ends in a node, and each node contains objects. DOM methods allow programmatic access to the tree; with them one can change the structure, style or content of a document. Nodes can have event handlers attached to them. Once an event is triggered, the event handlers get executed.[2]

The principal standardization of the DOM was handled by the World Wide Web Consortium (W3C), which last developed a recommendation in 2004. WHATWG took over the development of the standard, publishing it as a living document. The W3C now publishes stable snapshots of the WHATWG standard.” (WP)

See also

References

  1. ^ All versioning refers to W3C DOM only.
  2. ^ “Document Object Model (DOM)”http://www.w3.org/: W3C. Retrieved 2012-01-12. The Document Object Model is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents.
  3. ^ “DOM Standard”. Retrieved 23 September 2016.
  4. ^ “W3C Document Object Model”. Retrieved 23 September 2016.
  5. ^ (plh@w3.org), Philippe Le Hegaret. “New Charter for the HTML Working Group from Philippe Le Hegaret on 2013-09-30 (public-html-admin@w3.org from September 2013)”. Retrieved 23 September2016.
  6. ^ “PubStatus – WEBAPPS”. Retrieved 23 September 2016.
  7. ^ “W3C DOM4”. Retrieved 8 January 2021.
  8. ^ “A Survey of Techniques for Improving Efficiency of Mobile Web Browsing“, Concurrency and Computation, 2018
  9. ^ “JavaScript HTML DOM”. Retrieved 23 September 2016.
  10. ^ Kogent Solutions Inc. (2008). Ajax Black Book, New Edition (With Cd). Dreamtech Press. p. 40. ISBN 978-8177228380.
  11. ^ “XML for <SCRIPT> Cross Platform XML Parser in JavaScript”. Retrieved 23 September 2016.
  12. ^ “The modern DOM API for PHP 7 projects”.

General references

External links

Wikimedia Commons has media related to document object models.

Categories

Sources:

Fair Use Sources:

Categories
JavaScript Software Engineering

React Native mobile application framework

See also: JavaScript, JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

React-icon.svg
Developer(s)Facebook and community
Initial releaseMarch 26, 2015; 5 years ago[1]
Stable release0.63.4 / November 30, 2020; 3 months ago[2]
Preview release0.64.0-rc.3 / February 5, 2021; 25 days ago[2]
Repositoryhttps://github.com/facebook/react-native
Written inJavaScriptJavaC++Objective-CObjective-C++Python
PlatformAndroidAndroid TViOSmacOStvOSWeb and Windows
TypeApplication framework
LicenseMIT License
Websitereactnative.dev

React Native is an open-source mobile application framework created by Facebook, Inc.[3] It is used to develop applications for Android,[4] Android TV,[5] iOSmacOS,[6] tvOS,[7] Web,[8] Windows[6] and UWP[9] by enabling developers to use React‘s framework along with native platform capabilities.[10]” (WP)

Categories

Sources:

Fair Use Sources:

Categories
JavaScript Software Engineering

React JavaScript library

See also: JavaScript, JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

React-icon.svg
Original author(s)Jordan Walke
Developer(s)Facebook and community
Initial releaseMay 29, 2013; 7 years ago[1]
Stable release17.0.1[2]  / 22 October 2020; 4 months ago
Repositorygithub.com/facebook/react
Written inJavaScript
PlatformWeb platform
TypeJavaScript library
LicenseMIT License
Websitereactjs.org 

React (also known as React.js or ReactJS) is an open-sourcefront endJavaScript library[3] for building user interfaces or UI components. It is maintained by Facebook and a community of individual developers and companies.[4][5][6] React can be used as a base in the development of single-page or mobile applications. However, React is only concerned with state management and rendering that state to the DOM, so creating React applications usually requires the use of additional libraries for routing.[7][8] React Router[9] is an example of such a library.” (WP)

Categories

Sources:

Fair Use Sources:

Categories
JavaScript Software Engineering

Deno Runtime for JavaScript and TypeScript

See also: JavaScript, JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

Deno.svg
Original author(s)Ryan Dahl
Developer(s)Various
Initial releaseMay 13, 2018; 2 years ago[1]
Stable release1.8.0[2]  / 2 March 2021; 3 days ago
Repositorygithub.com/denoland/deno
Written inTypeScriptJavaScriptRustC++(V8 bindings)
Operating systemLinuxmacOSMicrosoft Windows
TypeRuntime environment
LicenseMIT License[3][4]
Websitedeno.land 

Deno is a runtime for JavaScript and TypeScript that is based on the V8 JavaScript engine and the Rust programming language. It was created by Ryan Dahl, original creator of Node.js, and is focused on productivity.[5] It was announced by Dahl in 2018 during his talk “10 Things I Regret About Node.js”.[6] Deno explicitly takes on the role of both runtime and package manager within a single executable, rather than requiring a separate package-management program.[7][8]” (WP)

History

“Deno was announced on JSConf EU 2018 by Ryan Dahl in his talk “10 Things I Regret About Node.js”.[6] In his talk, Dahl mentioned his regrets about the initial design decisions with Node.js, focusing on his choices of not using promises in API design, usage of the legacy GYP building system, node_modules and package.json, leaving out file extensions, magical module resolution with index.js and breaking the sandboxed environment of V8.[9] He eventually presented the prototype of Deno, aiming to achieve system call bindings through message passing with serialization tools such as Protocol Buffers, and to provide command line flags for access control.” (WP)

“Deno was initially written in Go and used Protocol Buffers for serialization between privileged (Go, with system call access) and unprivileged (V8) sides.[10] However, Go was soon replaced with Rust due to concerns of double runtime and garbage collection pressure.[11] Tokio is introduced in place of libuv as the asynchronous event-driven platform,[12] and FlatBuffers is adopted for faster, “zero-copy” serialization and deserialization[13] but later in August 2019, FlatBuffers were finally removed[14] after publishing benchmarks that measured a significant overhead of serialization in April 2019.[15]” (WP)

“A standard library, modeled after Go’s standard library, was created in November 2018 to provide extensive tools and utilities, partially solving Node.js’ dependency tree explosion problem.[16]” (WP)

“The official Deno 1.0 was released on May 13, 2020.[17]” (WP)

Overview

“Deno aims to be a productive scripting environment for the modern programmer.[7] Similar to Node.js, Deno emphasizes event-driven architecture, providing a set of non-blocking core I/O utilities, along with their blocking versions. Deno could be used to create web servers, perform scientific computations, etc. Deno is open source software under the MIT License.[18]” (WP)

Comparison with Node.js

“Deno and Node.js are both runtimes built on Google’s V8 JavaScript engine, the same engine used in Google Chrome. They both have internal event loops and provide command-line interfaces for running scripts and a wide range of system utilities.” (WP)

“Deno mainly deviates from Node.js in the following aspects:[7]” (WP)

  1. Uses ES Module as the default module system, instead of CommonJS.
  2. Uses URLs for loading local or remote dependencies, similar to browsers.
  3. Includes a built-in package manager for resource fetching, thus no need for npm.
  4. Supports TypeScript out of the box, using a snapshotted TypeScript compiler with caching mechanisms.
  5. Aims for better compatibility with browsers with a wide range of Web APIs.
  6. Allows file system and network access in order to run sandboxed code.
  7. Redesigns API to utilize promises, ES6 and TypeScript features.
  8. Minimizes core API size, while providing a large standard library with no external dependencies.
  9. Using message passing channels for invoking privileged system APIs and using bindings.” (WP)

Releases

VersionLatest micro versionRelease dateDate of last micro versionDescription
0.1.00.1.122018-08-232018-11-12Rust rewrite and V8 snapshot
0.2.00.2.112018-11-272019-02-08Mildly usable
0.3.00.3.102019-02-182019-04-25Instead of importing a “deno” module, there is now a global variable called “Deno”
0.4.00.4.02019-05-032019-05-03
0.5.00.5.02019-05-112019-05-11
0.6.00.6.02019-05-202019-05-20
0.7.00.7.02019-05-292019-05-29
0.8.00.8.02019-06-082019-06-08
0.9.00.9.02019-06-152019-06-15
0.10.00.10.02019-06-252019-06-25
0.11.00.11.02019-07-062019-07-06
0.12.00.12.02019-07-162019-07-16
0.13.00.13.02019-07-312019-07-31
0.14.00.14.02019-08-092019-08-09
0.15.00.15.02019-08-132019-08-13
0.16.00.16.02019-08-222019-08-22
0.17.00.17.02019-09-042019-09-04
0.18.00.18.02019-09-132019-09-13
0.19.00.19.02019-09-242019-09-24
0.20.00.20.02019-10-062019-10-06
0.21.00.21.02019-10-192019-10-19
0.22.00.22.02019-10-282019-10-28
0.23.00.23.02019-11-042019-11-04
0.24.00.24.02019-11-142019-11-14
0.25.00.25.02019-11-262019-11-26
0.26.00.26.02019-12-052019-12-05
0.27.00.27.02019-12-182019-12-18
0.28.00.28.12020-01-022020-01-03
0.29.00.29.02020-01-092020-01-09
0.30.00.30.02020-01-172020-01-17
0.31.00.31.02020-01-242020-01-24
0.32.00.32.02020-02-032020-02-03
0.33.00.33.02020-02-132020-02-13
0.34.00.34.02020-02-202020-02-20
0.35.00.35.02020-02-282020-02-28
0.36.00.36.02020-03-112020-03-11
0.37.00.37.12020-03-232020-03-23
0.38.00.38.02020-03-282020-03-28
0.39.00.39.02020-04-032020-04-03
0.40.00.40.02020-04-082020-04-08
0.41.00.41.02020-04-162020-04-16
0.42.00.42.02020-04-292020-04-29
1.0.01.0.52020-05-132020-06-03
1.1.01.1.32020-06-122020-07-03
1.2.01.2.32020-07-132020-08-08
1.3.01.3.32020-08-132020-09-04
1.4.01.4.62020-09-132020-10-10
1.5.01.5.42020-10-272020-11-23Faster tree-shaking and bundling, refactored REPL
1.6.01.6.32020-12-082020-12-30Compile standalone binaries via “deno compile”, support TypeScript 4.1, experimental support for Mac ARM64
1.7.01.7.52021-02-052021-02-19Cross compilation and 60% smaller binaries for deno compile, a DNS resolver API, support for data URLs in import statements and web workers
1.8.01.8.02021-03-022021-03-02Experimental support for WebGPU API, built-in internationalization APIs enabled, support for fetching private modules, revamped coverage tooling, support for TypeScript 4.2
Legend:Old versionLatest versionFuture release

Via the official Releases[19] page

Example

“This runs a basic Deno script without any file system or network permissions (sandbox mode):” (WP)

deno run main.ts

Explicit flags are required to enable permissions:

deno run --allow-read --allow-net main.ts

To inspect the dependency tree of the script, use the info subcommand:

deno info main.ts

A basic Hello, World! program in Deno looks just like it would in Node.js:

console.log("Hello, World!");

A global Deno namespace exposes APIs that are not available in the browser. A Unix cat program could be implemented as follows:

/* cat.ts */

/* Deno APIs are exposed through the `Deno` namespace. */
const { stdout, open, copy, args } = Deno;

// Top-level await is supported
for (let i = 0; i < args.length; i++) {
    const filename = args[i]; // Obtains command-line arguments.
    const file = await open(filename); // Opens the corresponding file for reading.
    await copy(file, stdout); // Performs a zero-copy asynchronous copy from `file` to `stdout`.
}

The Deno.copy function used above works much like Go’s io.Copy, where stdout (standard output) is the destination Writer, and file is the source Reader. To run this program, we need to enable read permission to the filesystem:

deno run --allow-read cat.ts myfile

The following Deno script implements a basic HTTP server:

// Imports `serve` from the remote Deno standard library, using URL.
import { serve } from "https://deno.land/std@v0.21.0/http/server.ts";

// `serve` function returns an asynchronous iterator, yielding a stream of requests
for await (const req of serve({ port: 8000 })) {
    req.respond({ body: "Hello, World!\n" });
}

When running this program, Deno will automatically download and cache the remote standard library files, and compile the code. Similarly, we can run a standard library script (such as a file server) directly without explicitly downloading, by providing the URL as the input filename (-A turns on all permissions):” (WP)

$ deno run -A https://deno.land/std/http/file_server.ts
Download https://deno.land/std/http/file_server.ts
Compile https://deno.land/std/http/file_server.ts
...
HTTP server listening on http://0.0.0.0:4500/

References

  1. ^ “Contributors, denoland/deno, Github”. Retrieved 5 July 2019.
  2. ^ “Release v1.8.0”. Retrieved 3 March 2021.
  3. ^ “deno/LICENSE at master”GitHub. Retrieved 5 July 2019.
  4. ^ “The MIT License”Open Source Initiative. 17 September 2018. Retrieved 17 September 2018.
  5. ^ “Deno: Secure V8 TypeScript Runtime from Original Node.js Creator”InfoQ. Retrieved 2019-05-17.
  6. a b JSConf (2018-06-06), 10 Things I Regret About Node.js – Ryan Dahl – JSConf EU 2018, retrieved 2019-05-17
  7. a b c “Deno Manual”deno.land. Retrieved 2019-05-17.
  8. ^ Paul Krill (2018-06-21). “Ryan Dahl’s Node.js regrets lead to Deno”InfoWorld.
  9. ^ Dahl, Ryan (2018-06-06). “Design mistakes in Node” (PDF). Github.
  10. ^ “denoland/deno, branch “golang””Github.
  11. ^ “Suggestion: Look into porting to Rust and using Tokio”GitHub.
  12. ^ “Tokio – The asynchronous run-time for the Rust programming language”Tokio.rs.
  13. ^ “Protobuf seems like a lot of overhead for this use case?”Github.
  14. ^ “Remove flatbuffers”GitHub.
  15. ^ “Replace flatbuffers”GitHub.
  16. ^ “denoland/deno_std: deno standard modules”Github.
  17. ^ “Deno 1.0”deno.land. Retrieved 2020-05-14.
  18. ^ “Deno Is Ready for Production”InfoQ. Retrieved 2020-07-01.
  19. ^ “Releases”. 2020-12-30. Retrieved 2021-01-14.

External links

Categories

(WP)

Sources:

Fair Use Sources:

Categories
JavaScript Software Engineering

V8 JavaScript engine

See also: JavaScript, JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

V8 JavaScript engine logo 2.svg
Original author(s)Lars Bak
Developer(s)The Chromium Project
Initial release2 September 2008; 12 years ago
Stable release8.9[1]  / 4 February 2021; 26 days ago
Repositorychromium.googlesource.com/v8/v8
Written inC++[2]
PlatformIA-32x86-64ARMAArch64MIPSMIPS64[3] PowerPCIBM s390
TypeJavaScript engine
LicenseBSD[4]
Websitev8.dev 

V8 is an open-source JavaScript engine developed by The Chromium Project for Google Chrome and Chromium web browsers.[5] The project’s creator is Lars Bak.[6] The first version of the V8 engine was released at the same time as the first version of Chrome: 2 September 2008. It has also been used on the server side, for example in Couchbase, and Node.js.” (WP)

Categories

Sources:

Fair Use Sources:

Categories
Bibliography JavaScript Software Engineering

Get Programming with Node.js

See also: JavaScript Bibliography and Bibliography of JavaScript Libraries and Web Frameworks

See: Get Programming with Node.js, 1st Edition, by Jonathan Wexler, 2019, 1617294748 (GtPgNjs)

Fair Use Source: 1617294748 (GtPgNjs)

About This Book:

Reviews:

“Lays out a refreshingly down-to-earth, pragmatic, and clear path
that shows you how to navigate your way through Node.js.” –FROM THE FOREWORD BY KYLE SIMPSON, GETIFY

“Will take you from average JavaScript programmer to Node Ninja in
less than a week!” –JOSEPH WHITE, JOECASA CONSULTING

“Great step-by-step instructions on how to build a Node.js app using
the latest technologies.” –JEREMY LANGE, SERTIFI

“The go-to book to learn the intricacies of Node and become
productive fast.” –VIPUL GUPTA, MICROSOFT

“An approachable, modern, and enjoyable introduction to Node.js.” –BRYCE DARLING, ADVANCED DATA AND NETWORK SOLUTIONS

About the Author:

Jonathan Wexler is skilled in production-grade, full-stack web development. He’s a senior developer with Bloomberg.

Book Details:

  • ISBN-10: 1617294748
  • ISBN-13: 978-1617294747
  • Publisher: Manning Publications; 1st edition (March 15, 2019)
  • Language: English
  • Paperback: 480 pages

Table of Contents:

Brief Table of Contents:

Copyright

Brief Table of Contents

Table of Contents

Foreword

Preface

Acknowledgments

About this book

About the author

Unit 0. Getting set up

Lesson 0. Setting up Node.js and the JavaScript engine

Lesson 1. Configuring your environment

Lesson 2. Running a Node.js application

Unit 1. Getting started with Node.js

Lesson 3. Creating a Node.js module

Lesson 4. Building a simple web server in Node.js

Lesson 5. Handling incoming data

Lesson 6. Writing better routes and serving external files

Lesson 7. Capstone: Creating your first web application

Unit 2. Easier web development with Express.js

Lesson 8. Setting up an app with Express.js

Lesson 9. Routing in Express.js

Lesson 10. Connecting views with templates

Lesson 11. Configurations and error handling

Lesson 12. Capstone: Enhancing the Confetti Cuisine site with Express.js

Unit 3. Connecting to a database

Lesson 13. Setting up a MongoDB Database

Lesson 14. Building models with Mongoose

Lesson 15. Connecting Controllers and Models

Lesson 16. Capstone: Saving user subscriptions

Unit 4. Building a user model

Lesson 17. Improving Your Data Models

Lesson 18. Building the user model

Lesson 19. Creating and reading your models

Lesson 20. Updating and Deleting your Models

Lesson 21. Capstone: Adding CRUD Models to Confetti Cuisine

Unit 5. Authenticating user accounts

Lesson 22. Adding sessions and flash messages

Lesson 23. Building a user login and hashing passwords

Lesson 24. Adding User Authentication

Lesson 25. Capstone: Adding User Authentication to Confetti Cuisine

Unit 6. Building an API

Lesson 26. Adding an API to Your Application

Lesson 27. Accessing Your API from Your Application

Lesson 28. Adding API Security

Lesson 29. Capstone: Implementing an API

Unit 7. Adding chat functionality

Lesson 30. Working with Socket.Io

Lesson 31. Saving Chat Messages

Lesson 32. Adding a Chat Notification Indicator

Lesson 33. Capstone: Adding a Chat Feature to Confetti Cuisinex

Unit 8. Deploying and managing code in production

Lesson 34. Deploying your application

Lesson 35. Managing in production

Lesson 36. Testing your application

Lesson 37. Capstone: Deploying Confetti Cuisine

A. JavaScript syntax introduced in ES6

B. Logging and using Node.js global objects

Index

Detailed Table of Contents:

List of Listings

Table of Contents

Copyright

Brief Table of Contents

Table of Contents

Foreword

Preface

Acknowledgments

About this book

About the author

Unit 0. Getting set up

Lesson 0. Setting up Node.js and the JavaScript engine

0.1. What you’re going to learn

0.2. Understanding Node.js

0.3. Why learn to develop in Node.js?

0.4. Preparing yourself for this book

Summary

Lesson 1. Configuring your environment

1.1. Installing Node.js

1.2. Installing a text editor

1.3. Setting up SCM and deployment tools

1.4. Working with the Node.js REPL in terminal

Summary

Lesson 2. Running a Node.js application

2.1. Creating a JavaScript file

2.2. Running your JavaScript file with Node.js

2.3. Running individual JavaScript commands

Summary

Unit 1. Getting started with Node.js

Lesson 3. Creating a Node.js module

3.1. Running npm commands

3.2. Initializing a Node.js application

Summary

Lesson 4. Building a simple web server in Node.js

4.1. Understanding web servers

4.2. Initializing the application with npm

4.3. Coding the application

4.4. Running the application

Summary

Lesson 5. Handling incoming data

5.1. Reworking your server code

5.2. Analyzing request data

5.3. Adding routes to a web application

Summary

Lesson 6. Writing better routes and serving external files

6.1. Serving static files with the fs module

6.2. Serving assets

6.3. Moving your routes to another file

Summary

Lesson 7. Capstone: Creating your first web application

7.1. Initializing the application

7.2. Understanding application directory structure

7.3. Creating main.js and router.js

7.4. Creating views

7.5. Adding assets

7.6. Creating routes

Summary

Unit 2. Easier web development with Express.js

Lesson 8. Setting up an app with Express.js

8.1. Installing the Express.js package

8.2. Building your first Express.js application

8.3. Working your way around a web framework

Summary

Lesson 9. Routing in Express.js

9.1. Building routes with Express.js

9.2. Analyzing request data

9.3. Using MVC

Summary

Lesson 10. Connecting views with templates

10.1. Connecting a templating engine

10.2. Passing data from your controllers

10.3. Setting up partials and layouts

Summary

Lesson 11. Configurations and error handling

11.1. Modifying your start script

11.2. Handling errors with Express.js

11.3. Serving static files

Summary

Lesson 12. Capstone: Enhancing the Confetti Cuisine site with Express.js

12.1. Initializing the application

12.2. Building the application

12.3. Adding more routes

12.4. Routing to views

12.5. Serving static views

12.6. Passing content to the views

12.7. Handling the errors

Summary

Unit 3. Connecting to a database

Lesson 13. Setting up a MongoDB Database

13.1. Setting up MongoDB

13.2. Running commands in the MongoDB shell

13.3. Connecting MongoDB to your application

Summary

Lesson 14. Building models with Mongoose

14.1. Setting up Mongoose with your Node.js application

14.2. Creating a schema

14.3. Organizing your models

Summary

Lesson 15. Connecting Controllers and Models

15.1. Creating a controller for subscribers

15.2. Saving posted data to a model

15.3. Using promises with Mongoose

Summary

Lesson 16. Capstone: Saving user subscriptions

16.1. Setting up the database

16.2. Modeling data

16.3. Adding subscriber views and routes

Summary

Unit 4. Building a user model

Lesson 17. Improving Your Data Models

17.1. Adding validations on the model

17.2. Testing models in REPL

17.3. Creating model associations

17.4. Populating data from associated models

Summary

Lesson 18. Building the user model

18.1. Building the user model

18.2. Adding CRUD methods to your models

18.3. Building the index page

18.4. Cleaning up your actions

Summary

Lesson 19. Creating and reading your models

19.1. Building the new user form

19.2. Creating new users from a view

19.3. Reading user data with show

Summary

Lesson 20. Updating and Deleting your Models

20.1. Building the edit user form

20.2. Updating users from a view

20.3. Deleting users with the delete action

Summary

Lesson 21. Capstone: Adding CRUD Models to Confetti Cuisine

21.1. Getting set up

21.2. Building the models

21.3. Creating the views

21.4. Structuring routes

21.5. Creating controllers

Summary

Unit 5. Authenticating user accounts

Lesson 22. Adding sessions and flash messages

22.1. Setting up flash message modules

22.2. Adding flash messages to controller actions

Summary

Lesson 23. Building a user login and hashing passwords

23.1. Implementing the user login form

23.2. Hashing passwords

23.3. Adding validation middleware with express-validator

Summary

Lesson 24. Adding User Authentication

24.1. Implementing Passport.js

24.2. Modifying the create action to use passport registration

24.3. Authenticating users at login

Summary

Lesson 25. Capstone: Adding User Authentication to Confetti Cuisine

25.1. Getting set up

25.2. Creating a login form

25.3. Adding encryption with Passport.js

25.4. Adding flash messaging

25.5. Adding validation middleware with express-validator

25.6. Adding authentication with Passport.js

25.7. Logging in and out

Summary

Unit 6. Building an API

Lesson 26. Adding an API to Your Application

26.1. Organizing your routes

26.2. Creating an API

26.3. Calling your API from the client

Summary

Lesson 27. Accessing Your API from Your Application

27.1. Applying an API namespace

27.2. Joining courses via modal

27.3. Creating an API endpoint to connect models

Summary

Lesson 28. Adding API Security

28.1. Implementing simple security

28.2. Adding API tokens

28.3. Using JSON web tokens

Summary

Lesson 29. Capstone: Implementing an API

29.1. Restructuring routes

29.2. Adding the courses partial

29.3. Creating the AJAX function

29.4. Adding an API endpoint

29.5. Creating an action to enroll users

Summary

Unit 7. Adding chat functionality

Lesson 30. Working with Socket.Io

30.1. Using socket.io

30.2. Creating a chat box

30.3. Connecting the server and client

Summary

Lesson 31. Saving Chat Messages

31.1. Connecting messages to users

31.2. Displaying user names in chat

31.3. Creating a message model

Summary

Lesson 32. Adding a Chat Notification Indicator

32.1. Broadcasting to all other sockets

32.2. Creating a chat indicator in navigation

Summary

Lesson 33. Capstone: Adding a Chat Feature to Confetti Cuisinex

33.1. Installing socket.io

33.2. Setting up socket.io on the server

33.3. Setting up socket.io on the client

33.4. Creating a Message model

33.5. Loading messages on connection

33.6. Setting up the chat icon

Summary

Unit 8. Deploying and managing code in production

Lesson 34. Deploying your application

34.1. Preparing for deployment

34.2. Deploying your application

34.3. Setting up your database in production

Summary

Lesson 35. Managing in production

35.1. Loading seed data

35.2. Linting

35.3. Debugging your application

Summary

Lesson 36. Testing your application

36.1. Basic testing with core modules

36.2. Testing with mocha and chai

36.3. Testing with a database and server

Summary

Lesson 37. Capstone: Deploying Confetti Cuisine

37.1. Linting and logging

37.2. Preparing for production

37.3. Deploying to Heroku

37.4. Setting up the database

37.5. Debugging in production

Summary

A. JavaScript syntax introduced in ES6

A.1. New in ES6

A.1.1. The let keyword

A.1.2. The const variable

A.1.3. String interpolation

A.1.4. Arrow functions

A.2. REPL

A.2.1. Running JavaScript in REPL

A.2.2. Using REPL in application development

Summary

B. Logging and using Node.js global objects

B.1. Logging

B.2. Global objects

Index

List of Figures

List of Tables

List of Listings

Sources:

Fair Use Sources: