NodeJS
Czym jest Node.js
Środowisko uruchomieniowe JavaScript. Umożliwia uruchomienie kodu JavaScript poza przeglądarką. Ryan Dahl 2009.
Jednowątkowe (tak jak JS), sterowane wydarzeniami. Open Source, napisane w C++, wieloplatformowe: Windows, Mac i Linux.
W 2018 Dahl ogłosił powstanie alternatywy dla Node.js, z założenia nastawionej na bezpieczeństwo - V8, Rust i Tokio
Składniki
- *Silnik V8- produkt Googla, znany z przeglądarki Chrome; serce Node.js
- *npm- domyślny menedżer pakietów - i biblioteka npm; zarządza pakietami i zależnościami
- *libuv- biblioteka udostępniająca funkcje systemu operacyjnego, m in zapewnia asynchroniczność - libuv | Cross-platform asynchronous I/O, operacje wejścia wyjścia, system plików, pętla zdarzeń
- *REPL- (Read - Eval - Print - Loop) interfejs poleceń Node.js interaktywny terminal, dostęp do modułów podstawowych, uruchamia go polecenie node; online: Repl.it - Online Nodejs Editor and IDE
- *moduły- dzielimy je na podstawowe (wystarczy require) i dostępne w pakietach (trzeba zainstalować)
- *http- jeden z wielu standardowych modułów, ten jest odpowiedzialny za obsługę protokołu HTTP
- *nodemon- nazwa to skrót od "Node.js monitor"; jest to osobny, nie będący częścią pakietu, program uruchamiany w trybie demona, niezbędny do dewelopingu; śledzi pliki i przy każdej modyfikacji restartuje Node.js. nodemon; trzeba go zainstalować osobno, wyjście ctrl+C
Moduły podstawowe (core modules) niektóre nie wymagają nawet require: console, setTimeout. Działają jak w JS, implementacje się różnią, ale działanie jest identyczne. 124/86
Innym popularnym menedżerem pakietów jest yarn.
Odpowiednikiem obiektu window w przeglądarce, w Node.js jest obiekt global. W REPLu this===global. Poza nim this === exports.
Silnik V8, tak samo jak JS, jest synchroniczny, to Node zapewnia asynchroniczność, LibUV zarządza zdarzeniami asynchronicznym.
- *synchroniczne- (bieżące zadanie blokuje, reszta czeka); callstack stos wywołań obsługujący jednowątkowość.
- *asynchroniczne- (wykonywane są po kolei, część odsyłana do pętli zdarzeń i czeka aż stos wywołań będzie pusty), najczęściej związane z callbackiem teraz często również z promisami i async/await; zwykle err i to co zwraca wyniki: error first callback; mówimy o tym pętla zdarzeń i nieblokujący model wejścia wyjścia (event loop i non-blocking I/O)
V8 JIT, w chwili wykonania JS jest optymalizowany i kompilowany do kodu maszynowego; zarządza pamięcią (garbage collection)
Czego nie ma w Node.js a jest tylko w przeglądarce: DOM, element window, cookie, fetch, alert.
Node pracuje z plikami (i systemem plików przez system operacyjny), bazami danych, backend, biblioteka modułów, praca z siecią.
Uruchomienie
Przy uruchomieniu przez init generator tworzy packet.json z informacjami o zainstalowanych pakietach; packet.lock.json nie do edycji, dla instalacji na nowo przez install
npm init
Nie trzeba odpowiadać na pytania. Z ^ aktualizacja tylko do wersji zgodnej z pierwszym numerem.
- y automatycznie
- -S pojawia się w zależnościach
- install odtwarza na podstawie jsona
- save dev w zależnościach developmentu (odwrotność: npm install --only=prod)
- -g globalnie flaga
- npm uninstall nazwa_modułu odinstalowanie
JSON: jak obiekt JS, ale klucz w cudzysłowie (nie apostrofie), a ostatni nie ma przecinka. Metody: parse i stringify.
Architekturą różni się od przeglądarki, ale posiada te same funkcje. Można uruchomić JS bezpośrednio w linii poleceń:
node App.js
Nazwa App.js jest domyślna, ale zwyczajowa.
Moduły
Moduł to oddzielny program, element programu, który coś robi, wykonuje jakieś zadania. Może być plikiem, lub katalogiem z plikami. Jest używany wielokrotnie.
Kontaktuje się z innymi elementami programu przez API, który jest interfejsem eksportowanym i importowanym. Bez eksportu i importu moduły są niezależne, nie widzą się nawzajem i mają izolowany scope, zasięg. Wynika to z faktu, że w momencie uruchomienia są przez Node.js owijane w funkcję (wrapper) i mają wszystkie cechy funkcji, czyli np. własny zasięg (prywatny).
mod.wrapper
(function (exports, require, module, __filename, __dirname) {
// kod modułu
})()
Parametry dirname i filename są to dane lokalne. Zmieniają się zależnie od kontekstu, czyli miejsca w którym są wywoływane.
To dzięki funkcji require() łączącej moduły były one dostępne w Node.js na wiele lat zanim wprowadzono je do JS w ES6 w 2015. Require jest synchroniczna, bo czekamy na rezultat. Tak jak w poniższym przykładzie bez ścieżki dostępu odnosimy się tylko do modułów podstawowych, które są zaimplementowane jako funkcje.
const http = require('http');
Powyżej składnia CommonJS, można też stosować nowszą ES6 (ES Modules)
import http from 'http';
Początkowo exports i module.exports to to samo, oba prowadzą do tego samego pustego obiektu. Dlatego każdy moduł domyślnie coś zwraca, ma return z wrappera; jeżeli nie zadeklarujemy co, to będzie to pusty obiekt: { }. Kiedy tworzymy moduły sami musimy określić co z nich zwracamy. Kiedy tworzymy przypisanie module.exports się zmienia.
Moduły możemy podzielić na wbudowane (core modules), instalowane (z npm) i własne napisane przez nas. API to zbiór udostępnianych funkcji.
Niektóre moduły podstawowe
fs.readFile('./file.txt', 'utf8', (err, file) => console.log(file))
fs.access('ścieżka i nazwa pliku', callback)
fs.rename('stara nazwa', 'nowa nazwa', callback)
fs.readdir('ścieżka', (err, files) => {callback})
fs.readfile('nazwa', 'kodowanie np utf8' domyslnie null czyli bufor, (err, data)=>{callback})
fs.writeFile('nazwa', 'tresc' (err)=>{callback})
fs.appendFile - jw
Domyślnie utf8 append write file
path.join(__dirname, 'nazwapliku')
path.parse('__filename')
path.extname('nazwa pliku')
path.isAbsolute('ścieżka i nazwa pliku')
os.uptime()
os.homedir()
Fetch
Promisy, pozytywne rozwiązanie przez kolejne then. Błąd obsługiwany jest przez catch. Jeżeli jest tylko jeden wiersz funkcji return nie jest potrzebny. Moduł node-fetch
const fetch = require("node-fetch");
const year = process.argv[2] || Math.floor(Math.random() - 2020);
fetch(\`http://numbersapi.com/$\{year}/year?json\`)
.then(response => {
console.log(response.status, response.ok);
return response.json();
})
.then(data => console.log(data.text))
.catch(error => console.log("Błąd", error));
Inne moduły tego typu: request i minimist.
Serwer
Żądanie zawiera: nazwę metody (domyślnie get), ścieżkę URL bez portu i hosta, wersję protokołu
Obiekt żądania:
- req.url ścieżka URL
- req.methods domyślnie GET
- req.headers obiekt składający się z par nazwa wartość; np.
{host : 'localhost:3000', connection: 'keep-alive'}
Obiekt odpowiedzi
-
res.writeHead() status odpowiedzi, i jej nagłówki (headers) w formie obiektu; np.
writeHead(200, {'Content-Type':'application/json'})
-
res.statusCode kod odpowiedzi
-
res.write(/- zawartość */) treść odpowiedzi
-
res.end() informacja dla serwera "możesz wysyłać", zakończenie odpowiedzi, można tam zawrzeć treść zastępując res.write().
-
HTTP response status codes - kody odpowiedzi serwera
-
HTTP request methods - metody: GET, POST, ALL, DELETE itp
Serwer w Node.js
Najprościej
const http = require("http");
http
.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
res.end("<h1>Hej, zażółć gęślą jaźń</h1>");
})
.listen(3000, "127.0.0.1");
Podzielony na elementy
const http = require("http");
const server = http.createServer();
server.addListener("request", (req, res) => {
res.writeHead(200, { "Content-Type": "text/plain; charset=utf-8" });
res.end("no elo, zażółć gęślą jaźń");
});
server.listen(3000, "127.0.0.1");
Port można zapisać do zmiennej ${port}.
const port = process.env.PORT || 3000;
W środku odpowiedzi logika asynchroniczna żeby nie blokować serwera. Routing to rozdzielenie odpowiedzi/zasobów w zależności od charakteru żądania. Przykład routingu:
const http = require("http");
const fs = require("fs");
const path = require("path");
const port = process.env.PORT || 3000;
const users = [{ name: "Adam", id: 1 }, { name: "Ewa", id: 2 }];
http
.createServer((req, res) => {
res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
switch (req.url) {
case "/":
fs.readFile(path.join(__dirname, "index.html"), (err, page) => {
if (err) res.end("Nie ma pliku index");
else res.end(page);
});
break;
case "/users":
fs.readFile(path.join(__dirname, "users.html"), (err, page) => {
if (err) res.end("Nie ma pliku users");
else res.end(page);
});
break;
case "/api":
res.writeHead(200, {
"Content-Type": "application/json; charset=utf-8"
});
const usersJSON = JSON.stringify(users);
res.end(usersJSON);
break;
case "/code.js":
res.writeHead(200, {
"Content-Type": "application/javascript; charset=utf-8"
});
fs.readFile(path.join(__dirname, "./code.js"), (err, page) => {
if (err) res.end("Nie ma pliku");
else res.end(page);
});
break;
default:
res.end("strona nie istnieje");
}
})
.listen(port, "127.0.0.1", () => {
console.log(\`Serwer nasłuchuje na porcie: $\{port}\`);
});
Odnośniki
Strony
- freeCodeCamp.org Benjamin Semah "What Exactly is Node.js? Explained for Beginners"
- Node.js - NodeSchool
- "Node.js Course for Beginners" - Node.js Collection | Dillion Megida "6 Tools You Can Use to Check for Vulnerabilities in Node.js"
- "Basics of Node.js"
- NodeSource : For mission-critical Node.js applications - Blog
- Learning Node.js [PDF]
- scotch.io: Holly Lloyd - Build Your First Node.js Website Courses | Ado Kukic - Getting Started with Node.js Courses | Ryan Chenkie - Build a RESTful Node.js API Courses | Chris on Code - Routing Node Applications Courses
- A complete guide to threads in Node.js
- MDN: "Node.js server without a framework"
- tutorialsteacher.com: Node.js Tutorials
- 101node
- Nerdjfpb Writings: Node Series
- Flavio Copes: All the Node.js tutorials
- Flavio Copes "The definitive Node.js handbook"
- Cassandra Wilcox: "Getting started with Node.js" | "Setting up a Node.js Project with NPM" | "Writing a Simple Server with Node.js and Express" | "Serving Dynamic Content with Node.js and Pug" | "Serving Static Content with Node.js and Express"
- Node.js Interview Questions
- NodeJS Tutorials
- FullStak - podcast i blog | FullStak
- Node.js - Softwareontheroad: articles on node, react, angular, AWS
- Deploying nodejs
- Codez Up Node.js Archives
- Mastering JS Node Tutorials
- Microsoft Developing with Node.js on Windows
- tutorialspoint Node.js Tutorial
- Flavio Copes "A brief history of Node.js"
- NodeJS | www.thecodebarbarian.com
Kursy
- "Top 5 Node.js Tutorials & Courses Online - Updated 2020"
- freeCodeCamp.org "Node.js and Express.js - Full Course" [YT 8:16:47]
- Dave Gray "Node.js Full Course for Beginners | Complete All-in-One Tutorial | 7 Hours" [YT 6:50:31]
- Microsoft Build JavaScript applications with Node.js
- CoderOne "Full MERN Website React Nodejs w/ GraphQL Tailwind and Docker From Zero To Deployment + GIVEAWAY" [YT 8:15:43]
- JavaScript in Plain English SharmaGourav "10 Free Courses to Learn Node.js in 2022 — Best of the Lot"
Narzędzia
- Prisma's Data Guide Top 11 Node.js ORMs, Query Builders & Database Libraries in 2020
- report-toolkit CLI & programmable API to help developers analyze & process Node.js Diagnostic Reports
- Sam Agnew "5 Ways to Make HTTP Requests in Node.js"
- jasongin / nvs Node Version Switcher - A cross-platform tool for switching between versions and forks of Node.js
- Prisma an open-source database toolkit
- subnub / myDrive Node.js and mongoDB Google Drive Clone
- f0lg0 / node-webapp-template-1 beginner friendly NodeJS webapp template (REST API).
- For.io Studio Generate, customize, test & debug Node.js backends - in your browser
Artykuły
- "11 Best NodeJs Tutorial, Course, Training and Certification" | "7 Best Mobile Apps Development Courses, Tutorials and Training"
- "How to Perform Web-Scraping using Node.js" | "How to Perform Web-Scraping using Node.js- Part 2"
- "goldbergyoni / nodebestpractices" The Node.js best practices list (December 2020)
- "Node.js and JS foundations are merging to form OpenJS"
- Adrian Mejia Blog Tag: javascript | "Getting started with Node.js modules: require, exports, imports and beyond"
- Tania Rascia: Posts tagged as node
- Phil Nash: "How To Start A Node.Js Project"
- Shadid Haque "How to Architect a Node.Js Project from Ground Up?"
- Full stack javascript tutorial For beginners: Part 1 [The Backend] | Part 2 [The Frontend]
- "Getting started with Node.js: Introduction" | "Creating an HTTPs server with Node.js and Express"
- Aditya Sridhar "How to Easily use GRPC and Protocol Buffers with NodeJS"
- Medium: TAGGED IN Nodejs | "What are the best resources for learning Node.js" | Victor Ofoegbu "The only NodeJs introduction you’ll ever need." | "Node Express Pico-Tutorial Part 1: Hello World!" | Kevin Downs "Intro to Node.js" | "Node.js tips and tricks that can help you deliver a more secure and robust application" | Lisa "Beginner's guide to creating a Node.js server" | "45 Amazing Node.js Open Source for the Past Year (v.2019)" | "Build Super Fast Apps in Node.js using Redis Cache" | "5 common mistakes in every Node.js app" | Rich Trott "Using worker_threads in Node.js" | "Bulletproof node.js project architecture" | Nikhil Rangpariya "Top 10 Node.Js Frameworks to Use in 2020" | "Natural language processing for Node.js" | Orel Balilti "NodeJS — Life changer or just a mess?" | Jeremy Kithome "The best unit testing frameworks for Node.js" | Alexander Nnakwue "Going serverless with your Node.js apps" | Yogesh Chavan "How to generate PDF of a website page with Node.js" | Olutunmbi Banto "Writing Tests in your Node JS API Application" | Moorad Altamimi "How I made my own YouTube Downloader using JavaScript and Node.js" | Oliver Alonso "Scalability in NodeJS: Creating a Zero-downtime cluster" | Sunny Sun "How to Resolve Certificate Errors in a Node.js App with SSL Calls" | Abhishek Singh "Different types of dependencies in a Node.js application explained" | Shahid "Microservice Architecture with Node.js" | javinpaul "7 Free Courses to learn Node.js in 2020" | Gajus Kuizinas "Ultimate guide to concurrent logging in Node.js" | Node.js "Source maps in Node.js. Supporting the many flavors of JavaScript" | Idorenyin Obong "7 ways to improve Node.js performance at scale" | Indrek Lasn "12 Useful Packages Every Node.js Developer Should Know" | Shubham Chadokar "Email sending is fun in nodejs"
- blog.appsignal.com Diogo Souza "Security Best Practices for Node.js" | Andrei Gaspar "Node.js Resiliency Concepts: Recovery and Self-Healing" | Andrei Gaspar "Node.js Resiliency Concepts: The Circuit Breaker" | Diogo Souza "Building APIs With GraphQL in Your Node.js Application" | Deepu K Sasidharan "Avoiding Memory Leaks in Node.js: Best Practices for Performance" | Diogo Souza "Exploring Node.js Async Hooks"
- Node.js Under The Hood: "#1 - Getting to know our tools" | "#2 - Understanding JavaScript" | "#3 - Deep Dive Into the Event Loop"
- "What Really Makes Node.js Great?"
- David Hettler "Monitoring Node.js: Watch Your Event Loop Lag!"
- "Create HTTP Web Server in Node.js: Complete Tutorial"
- Noah Heinrich "Generating PDFs with Node"
- "Github Login Implementation In Node.js Using Passport.js"
- GoogleCloudPlatform/nodejs-getting-started A tutorial for creating a complete application using Node.js on Google Cloud Platform
- morioh: Dylan North "7 Tips for Mastering Node.js in 2020" | Nandu Singh "How to Use a SQL Like and Regex Search in MongoDB and Node.JS" | "Payment With Stripe in Node.js Application Example & Tutorial" | Ruhan Khandakar "Introducing module.exports | How to export in Node.js" | Robert E. Hilton "How to building a stable Node.js project architecture" | Chih- Yu Lin "Node.JS | Build a Command Line (CLI) Tool in NodeJS" | "Top Mistakes That Node.js Developers Make and Should be Avoided" | "Top 5 Common Node.js mistakes in Lambda" | Cristian Vasta "Social Login via Google & Facebook to Your Single-page App" | Peter Andrews "Creating a simple CRUD app with NodeJS, GraphQL and React" | Dylan North "How to avoiding callback hell in Node.js" | Poppy Cooke "The Ultimate Node.js Beginner Tutorial" | Mikael Abehsera "Learn how to get Serverless running with Node.js" | Liam Hurst "Top 7 Most Popular Node.js Frameworks You Should Know" | Ellis Herbert "Push Notifications Using Node.js and Firebase" | Peter Andrews "Getting started with Elasticsearch and Node.js" | Anda Lacacima "How to Build an Application with ReactJS and NodeJS" | Dylan North "Understanding callbacks using Node.js | Callbacks Concept"
- :78 NodeJS Interview Questions & Answers: | Joshua Rowe "Nodejs Full Stack App for User Authentication" | Ellis Herbert "How to Build a social poll app with Node.js" | Most Sara "How to build a Simple Beginner App with Node.js, Bootstrap and MongoDB" | Sofia Kelly "Starting Node.js on Windows for Beginner" | i18next "Node.js web frameworks like express or Fastify and also for Deno" | "Node.js Everywhere with Environment Variables"
- "You Can Now Write Google Cloud Functions with Node.js 8"
- alxolr: "Learning asynchronous programming in node.js with callbacks" | "How to fork a nodejs stream into many streams"
- "Black Clouds and Silver Linings in NodeJS Security"
- "Get Started With Node: An Introduction To APIs, HTTP And ES6+ JavaScript"
- LoginRadius Engineering Vineeta Jain "Build A Twitter Bot Using NodeJS" | Aman Agrawal "Facebook authentication using NodeJS and PassportJS" | Puneet Singh "Google authentication with Node.js and Passport.js"
- "Client-Side JavaScript to Node.js"
- CodeWall: NodeJS Archives "How To Secure Your Node.js Application With JSON Web Token Tutorial" | "Setting Up a NodeJS Web Server On Your Android Phone or Tablet" | Dan Englishby "Setting Up A Local Web Server With NodeJS & ExpressJS"
- "Automatic NodeJS API Generator from MySQL Database"
- "Using Strapi for Node.js Content Management with a React SPA"
- Express Validator Tutorial | Dan Arias "Create a Simple and Stylish Node Express App"
- "Generating PDFs with Node"
- "Generating PDF from HTML with Node.js and Puppeteer"
- Janith Kasun "Building a REST API with Node and Express"
- Weiyuan Liu "Exploring Google Sheets API with Node.js — Going on a test drive"
- "Build a Twitter Clone Server with Apollo, GraphQL, Nodejs, and Crowdbotics"
- "Build Node.js RESTful APIs in 10 Minutes"
- Kapehe Jorgenson "Node.js v14: What's New?"
- Ganeshmani P "How To Implement Worker Threads In Node.js"
- "Creating REST API in Node.js with Express and MySQL"
- majikarp/node-desktop-app-template Simple Template for Creating a Desktop Application powered by Node.js, Electron and Bootstrap
- tareksalem/grandjs A backend framework for solid web apps based on node.js
- Bleeding Code /NodeJS
- Scott Moss: Server-Side GraphQL in Node.js
- Shenesh Perera "Web Scraping with Javascript and NodeJS"
- Eugene Stepnov "14+ Best Node Js Open Source Projects"
- Aparna Joshi Posts tagged as NodeJs
- Margo McCabe "Building a Database Written in Node.js from the Ground Up"
- Simon Plenderleith Category: Node.js
Web Accessibility
Youtube
- *Kanały- PedroTech [YT (1)]
- *Playlisty- Coders Life "Node.js Crash Course - Create Server - From Installation to Hosting with Database & CRUD operations" [YT playlist 8 filmów] | edureka!: Node.Js Tutorial Videos [YT playlist 26 filmów] | Node.Js Tutorial Videos [YT playlist 26 filmów] | productioncoder "Sessions in express.js | Node.js session implementation with Redis" [YT playlist 9 filmów] | codedamn "NodeJS + ExpressJS Tutorials" [YT playlist 26 filmów] | Web Dev Simplified "Introduction to Node.js" [YT playlist 10 filmów] | Stuy "Advanced NodeJS & JavaScript" [YT playlista 3 filmy] | DmitriiKee Coding "react node js full stack" [YT playlista 5 filmów] | Codevolution "Node js Tutorial for Beginners" [YT playlist 22 filmy] | Classsed "Build a Chat app with NodeJS, React & GraphQL" [YT playlist 13 filmów] | The Full Stack Junkie "Node Concepts" [YT playlist 5 filmów]
- The Net Ninja The Net Ninja "Node.js Crash Course Tutorial" [12 filmów] | The Net Ninja "Node JS Tutorial for Beginners" [YT playlist 37 filmów] | The Net Ninja "Node.js Auth Tutorial (JWT)" [YT playlist 18 filmów]
- Bleeding Code Bleeding Code "NodeJS" [YT playlist 3 filmy] - Bleeding Code "Node JS Performance Optimizations" [YT playlist 5 filmów]
- Coding Shiksha Coding Shiksha: Node.js Project Videos [YT playlist 10 filmów] | NodeJS Tutorials [YT playlist 2 filmy]
- Programming with Mosh Programming with Mosh: Node.js Tutorials [YT playlist 14 filmów] | Programming with Mosh: "Node.js Tutorial for Beginners: Learn Node in 1 Hour | Mosh" [1:18:15]
- Academind Academind "Node.js Basics" [YT playlist 18 filmów] | Academind "MERN Stack - React.js Node, Express & MongoDB Crash Course - Tutorial for Beginners" [YT 1:35:42]
- Traversy Media Traversy Media "Node.js & Express From Scratch" [YT playlist 12 filmów] | Traversy Media "Node.js Videos" [YT playlist 31 filmów] - "Node.js REST API With Restify, Mongoose, JWT" [YT playlista 2 filmy] "Node.js & Pusher Real Time Polling App" [YT playlista 3 filmy] | Traversy Media - Node.js Tutorials [YT playlist 4 filmy] | Traversy Media - Node.js Videos [YT playlist 30 filmów]
- Daily Tuition Daily Tuition "The Complete Node - 2020" [YT playlist 44 filmy] ("Basics Of MongoDb in 8 Minutes - MongoDB For Node Application - 45" [YT 8:32])
- *Filmy- Twórca Stron "Node.js - kurs w 60 minut" [YT 54:41] | Fireship "Node.js Ultimate Beginner’s Guide in 7 Easy Steps" [16:19] | Devslopes "Node Beginner Tutorial - Learn To Build REST APIs In JavaScript - [Full Course]" [YT 3:23:36] | Intellipaat "Node JS Course | Node JS Tutorial | Intellipaat" [YT 6:59:37] | "Getting Started with Node.js - Justin Reock, Rogue Wave Software" [YT 35:42] | "Concurrency in NodeJS" [YT 29:14] | "Observing NodeJS" [YT 25:42] | "React.js and Node.js Project | Youtube Video Upload Project" [YT 43:27] "Learn Node.js - Node.js API Development for Beginners" [YT 2:50:04] | TalkInCode "Node.js Streams: Stream Into the Future" [YT 33:31] | The Life Of A Dev "How To Use The Google Calendar API In Node.js" [44:58] | JavaScript Mastery "How to Create PDFs With Node JS and React" [YT 25:56]
- freeCodeCamp: freeCodeCamp.org "Node.js Tutorials" [YT playlist 8 filmów] | [YT Express.js & Node.js Course for Beginners - Full Tutorial 2:28:13] | "Learn the MERN Stack - Full Tutorial (MongoDB, Express, React, Node.js)" [YT 1:47:01] | edureka! "What is Node.js | Node.js Tutorial for Beginners | Node.js Modules | Node.js Training | Edureka" [YT playlist 1:11:30] | Traversy Media "Node.js Tutorial For Absolute Beginners" [YT 24:45]
- *Deploying- Academind "Amazon Web Services Basics" [YT playlist 9 filmów] | Huakun Shen "Deploy Nodejs Web app on AWS EC2 with SSL certificate" [YT 25:55] | Caleb Curry "Node.js Deploy to Amazon Web Services (AWS) Tutorial (Elastic Beanstalk, Express, Git, CI/CD)" [YT 25:46] | Cloud Path "AWS CodePipeline tutorial | Build a CI/CD Pipeline on AWS" [YT 16:34] | Tech Primers "CICD using AWS CodePipeline and Elastic Bean Stalk | DevOps | Tech Primers" [YT 34:42] | Better Coding Academy "Build a CI/CD Pipeline for a React App | AWS CodePipeline Full Tutorial | Code With Me!" [YT 16:31] | MartyAWS "GitLab CICD Pipelines with AWS EC2 and S3" [YT 22:31] | Valentin Despa "Gitlab CI pipeline tutorial for beginners" [YT 7:39] | "Webinar: App Deployments on Amazon Web Services" | Jack He "I Coded a Multiplayer Chess Game in React and Node.js" [YT 17:12]
- Jak zacząć programować? "Backend - Podstawy w Node.js i Express" [YT 33:47] | "Backend w Node.js - PATCH, DELETE. Darmowy hosting na Heroku i Github pages" [YT 43:14]
- Twórca Stron "Projekt "Notatki". Node + MongoDB + React" [YT playlist 8 filmów]
Deploying
- AWS Lambda Pricing
- CodenvyPricing & Packages
- Oracle Compute - Virtual Machine Instances
- openNode
- Glitch
- ngrok
- Clever Cloud an IT Automation platform
- Ghost open source headless Node.js CMS
- Gatsby Cloud Docs
- Stackery delivery of serverless applications
- Courses with Frantz "Deploying node.js book - All solutions to projects and assignments" [YT playlista 6 filmów]
Typescript
- Elvis Miranda "Building a Node.js App with TypeScript Tutorial" | Elvis Miranda "NodeJs Development with framework fortjs" | Adam Rose "How to build a blogging engine using Node.js and TypeScript"
- "Building a Node.js API with TypeScript and GraphQL"
- Zaiste "How to Quickly Build a REST API in Node.js with TypeScript (for Absolute Beginners) - PART 1 of 4"
- Zaiste "TypeScript with Node.js" [YT playlist 5 filmów]
- a7ul / esbuild-node-tsc Build your Typescript Node.js projects using blazing fast esbuild
NestJS
- NestJS - A progressive Node.js web framework | "NestJs: Modern ways to build APIs with Typescript and NestJs"
- "NestJS – Your NodeJS empowered with best practices"
- overment "Kurs Nest.js - framework backend dla Node.js (alternatywa Express.js) i TypeScript. MVC / REST API" [YT playlist 7 filmów]
- "squareboat / nestjs-boilerplate" - A production-ready NestJS boilerplate
- Fullstack Programmer "Fullstack Task Management with NestJs, NodeJs, React, TypeORM, Postgres & TypeScript" [YT playlist 5 filmów]
- freeCodeCamp.org "NestJs Course for Beginners - Create a REST API" [YT 3:42:08]
Frameworki
- Contentful Content Infrastructure: Beyond Headless CMS
- Netlify CMS Open source content management for your Git workflow
- TinaCMS open-source site editing toolkit for React-based frameworks — Gatsby & Next.js
- Sails.js - Realtime MVC Framework for Node.js
- Material-UI React UI Framework
- Ant Design React UI Framework
- PrimeReact UI Framework for React
- Semantic UI React The official Semantic-UI-React integration
- Blueprint React-based UI toolkit for the web
- Evergreen React UI Framework
- Elemental UI UI Toolkit for React.js Websites and Apps
- grommet react-based framework
- Keystone 5
- Carbon Design System
- Ember.js a productive, battle-tested JavaScript framework for building modern web applications
Testy
- Medium Mostafa Moradian "Secure Code Review and Penetration Testing of Node.js and JavaScript Apps"
- morioh Gizzy Berry "Top 4 Unit Testing Frameworks for Node.js" | Mrinal Raj "How to write Tests for a Node.js TODO list Module"
- jest - Samuraj Programowania "Podstawy testowania z użyciem biblioteki Jest" [YT 1:23:56]
- supertest
- puppeteer/puppetee | Google Developers - Puppeteer | pptr.dev - Puppeteer v2.0
- The Selenium Browser Automation Project
- freecodecamp.org "The Best Automation Testing Tools For Developers"
- SuperAgent light-weight progressive ajax API
- Maciej Aniserowicz "Mega piguła wiedzy o testach jednostkowych"
- Ioan L "The Best Automated Testing Tools in 2020 (detailed review)"
- "Building a backdoor in Node.js with 50 lines of code"
- gulp.js A toolkit to automate & enhance your workflow
- Grunt The JavaScript Task Runner
- Yeoman The web's scaffolding tool for modern webapps
- Rollbar
- Testing Library Simple and complete testing utilities that encourage good testing practices
- Mostafa Moradian "Secure Code Review and Penetration Testing of Node.js and JavaScript Apps. Or why systems fail!"
Web Accessibility
Deno
- Deno - a secure runtime for JavaScript and TypeScript built with V8, Rust, and Tokio
- Sean Robertson "What’s Deno, and how is it different from Node.js?"
- Tech Jasmine "Best Deno Tutorials on YouTube"
- "Next gen JavaScript and TypeScript runtime – Deno"
- Flavio Copes "The Deno Handbook: a concise introduction to Deno"
- Samuraj Programowania "Deno - następca Node.js? Backend dla JavaScript developerów" [29:50]
- Adrian Twarog "Deno Tutorial" [YT playlista 9 filmów]
- Barely Coding "Deno tutorials" [YT playlist 3 filmy]
- The Net Ninja "Deno Jump-start Tutorial" [YT playlist 7 filmów]
API
- REST API Tutorial
- Dan Englishby "How to use the Facebook Graph API Explorer"
- Adrian Hall "Build a GraphQL Weather API with OpenWeatherMap and AWS AppSync"
- Silind / twitter-api-client Node.js / JavaScript client for Twitter API
- Hade "Advanced Express JS REST API - JWT Refresh Tokens - Node.js"
- Aleksandar Vasilevski "How to Build Rest API with Node.js, Express.js and MongoDB"
- Tapas Adhikary "10 lesser-known Web APIs you may want to use"
- public-apis/public-apis - A collective list of free APIs for use in software and web development.
- "How to scrape data from a website with JavaScript" Use Node.js and Puppeteer to easily create a reusable tool for crawling, collecting, and scraping data
- "PHP and cURL: How WordPress makes HTTP requests"
- Sample APIs A simple, no fuss, no mess, no auth playground for learning RESTful or GraphQL APIs.
- OpenWeatherMap
- Numbers API
- NBP Web API
- Random API
- Random User Generator
- Dog API
- TheCatAPI
- Cat as a service
- JSONPlaceholder - Fake Online REST API
- Big Heads · Easily generate avatars for your projects
- The Rick and Morty API
- micro-jaymock Tiny API mocking microservice for generating fake JSON data.
- Punk API
- Public APIs UI
- Github / public-apis
- r-spacex / SpaceX-API Open Source REST API for rocket, core, capsule, pad, and launch data; GraphiQL Explorer
- Said Hayani "Here are the most popular ways to make an HTTP request in JavaScript"
- Manish Shivanandhan "JavaScript Fetch API Tutorial with JS Fetch Post and Header Examples"
- Ondrej Polesny "The Fetch API Cheatsheet: Nine of the Most Common API Requests"
- medium Sylwia Vargas "How to Hide Your API Keys"
- Rakesh Tiwari "How to Build a Secure Node js REST API: 4 Easy Steps"
- freeCodeCamp.org Tooba Jamal "What is an API and How Does it Work? APIs for Beginners" Jean-Marc Möckel "REST API Design Best Practices Handbook – How to Build a REST API with JavaScript, Node.js, and Express.js"
- Love Sharma "Principles & Best practices of REST API Design"
API YT
- Traversy Media "Vanilla Node.js REST API | No Framework" [YT 1:01:36]
- Kacper Sieradziński "⚠️To absolutne minimum wiedzy o REST API i HATEOAS" [YT 14:14]
- yoursTRULY "REST API using NodeJS and MongoDB" [YT playlist 18 filmów]
- Morgan Page "How to build a REST API with Node js, Express & Postgres then deploy it and call it from JavaScript." [YT 1:06:10]
REST API
- REST API Tutorial
- Paweł Dybcio "Testowanie aplikacji REST przy użyciu Postmana"
- Rishabh Mishra "Building REST API with Express, TypeScript and Swagger"
- overment "Kurs REST API od podstaw / Czym jest API / REST overment / HTTP / GraphQL / JWT / autoryzacja / HTTP status code / microservices / jak stworzyć API" [YT playlista 10 filmów]
- The Net Ninja "REST API Tutorials (Node, Express & Mongo)" [YT playlist 17 filmów]
- TheSkinnyCoder "RESTful-API Tutorial using Express, MongoDB and NodeJS | CRUD Functionality | REST API | MVC Design" [YT 1:40:31]
- Kaustubh Ghadge "Building a RESTful API Using Node.JS and MongoDB"
- Digamber "React Axios Tutorial – Make HTTP GET and POST Requests"
- Fireship "RESTful APIs in 100 Seconds // Build an API from Scratch with Node.js Express" [YT 11:19]
Postman
- Postman
- Postman The Collaboration Platform for API Development
- Hoppscotch • A free, fast and beautiful API request builder
- Insomnia | The API Design Platform and REST Client
- SDET - QA Automation Techie "Postman Beginners Crash Course - Part 1 | API Testing | Introduction | Postman GUI | HTTP Requests" [YT 1:01:42] | "Postman Beginners Crash Course - Part 2 | API Testing | HTTP Requests | Validations" [YT 1:05:55]
- freeCodeCamp.org "APIs for Beginners - How to use an API (Full Course / Tutorial)" [YT 1:19:32] | "Postman Beginner's Course - API Testing" [YT 2:09:37]
- Clever Programmer "Postman API Crash Course for Beginners [2020] - Learn Postman in 1 hour" [1:32:06]
- Automation Step by Step - Raghav Pal "Postman Beginners Crash Course - Part 1 | Postman Introduction, GUI, Request creation" [YT 51:34] | "Postman Beginners Crash Course - Part 2 | Collection, Variables & Environments" [YT 31:23] | "Postman Beginners Crash Course - Part 3 | Scripting & Testing | Debugging & Troubleshooting" [YT 11:06] | "Postman Beginners Crash Course - Part 4 | Command Line & Data Driven Testing" [YT 23:22]