<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/towardsdev/best-of/2022/04" -->

---
title: Best Towards Dev posts — April 2022 | daily.dev
description: The most upvoted Towards Dev posts from April 2022, curated by the daily.dev community.
canonical: https://daily.dev/sources/towardsdev/best-of/2022/04
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/towardsdev/best-of/2022/04
og:type: website
og:site_name: daily.dev
og:title: Best Towards Dev posts — April 2022 | daily.dev
og:description: The most upvoted Towards Dev posts from April 2022, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of Towards Dev — April 2022

1. 1  
[](https://daily.dev/posts/web-scraping-with-javascript-and-node-js-mlp12sova "Web scraping with JavaScript and Node.js")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Web scraping with JavaScript and Node.js  
Web scraping is the process of extracting content and data from a website. Many industries use web scraping for market analysis, price comparison, and machine learning. We are going to build a simple web scraper with javascript and Node.js. We will use it to scrape information related to a product, specifically the product’s name, price, and image.  
69  
3
2. 2  
[](https://daily.dev/posts/building-a-professional-api-with-nodejs-typescript-expressjs-mongodb-jest-deploy-to-heroku-p-um74efdkz "Building a professional API with NodeJS, Typescript, ExpressJS, MongoDB, Jest + Deploy to Heroku — PART 4")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Building a professional API with NodeJS, Typescript, ExpressJS, MongoDB, Jest + Deploy to Heroku — PART 4  
In this article, you’ll learn the CRUD paradigm, implements it in NodeJS and work with Express Routes and Requests. Building a professional API with NodeJS, Typescript, ExpressJS, MongoDB, Jest + Deploy to Heroku.  
59  
2
3. 3  
[](https://daily.dev/posts/how-do-you-decide-if-node-js-is-suitable-for-building-a-particular-type-of-application--isekvstcb "How do you decide if Node.JS is suitable for building a particular type of application?")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
How do you decide if Node.JS is suitable for building a particular type of application?  
In general, Node.Js is suited to the development of applications that require real-time data exchanges. The specific kinds of applications, with real-life examples, that can be built with node.js include the following: Instant Message and Chat applications, streaming applications, e-commerce platforms and collaborative tools.  
48  
1
4. 4  
[](https://daily.dev/posts/javascript-promises-xbwf6hizt "JavaScript Promises")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
JavaScript Promises  
Fetch() is the JavaScript method used to get and post data to the server. It takes one required argument, the path(url) to the resource we want to fetch. A fetch request returns a Promise, which goes from pending to eventually fulfilled, resolving in a Response object. Then the program handles the response using the .then and .catch methods.  
40
5. 5  
[](https://daily.dev/posts/kubernetes-architecture-yvwmqkm "Kubernetes Architecture")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Kubernetes Architecture  
Kubernetes is a cloud-based management system for containers. Kubernetes has two types of nodes: Master and Worker. The Master node is where our logic lives which knows how to control other worker nodes running in the cluster. Worker nodes are connected by Kubelet, Kube-Proxy and Container-runtime.  
38
6. 6  
[](https://daily.dev/posts/node-js--event-loop-gvhal0uke "Node.js -Event Loop")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Node.js -Event Loop  
The event loop is an endless loop, which waits for tasks, executes them and then sleeps until it receives more tasks. The event loop allows us to use callbacks and promises. Node.js is a single-threaded event-driven platform that is capable of running non-blocking, asynchronously programming.  
25
7. 7  
[](https://daily.dev/posts/restful-api-with-express-and-nodejs-3opmygpln "RESTful API with Express and NodeJS")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
RESTful API with Express and NodeJS  
REST (Representational State Transfer) is an architectural style that defines a set of constraints to be used to create web services. REST API is a way of accessing web services in a single and flexible way without having any processing. Let’s create an express server that will listen on port 3000\. We’ll have to restart the server every time we make changes.  
22
8. 8  
[](https://daily.dev/posts/take-pictures-in-browser-with-javascript-cnzrpfnx "Take Pictures in Browser with JavaScript")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Take Pictures in Browser with JavaScript  
Take Pictures in Browser with JavaScript. Make Use of MediaDevices Property in JavaScript. A live demo of this project is here. We’ll start by installing a server for us to test the results. If you’re using a text editor like VS Code, using a live server extension will also work.  
17
9. 9  
[](https://daily.dev/posts/creating-a-nodejs-restful-api-without-expressjs-part-1-nrgamp-1l "Creating a NodeJS RESTful API without ExpressJS— Part 1")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Creating a NodeJS RESTful API without ExpressJS— Part 1  
REST (Representational State Transfer) is an architectural style that defines a set of constraints to be used to create web services. A request is sent by the user to the server as a web URL as a GET, PUT, POST or DELETE request. After that, a response comes back from the server in the form of HTML, XML, Image, JSON, etc.  
17
10. 10  
[](https://daily.dev/posts/hexagonal-architecture-and-domain-driven-design-w-z1v21rs "Hexagonal architecture and Domain Driven Design")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Hexagonal architecture and Domain Driven Design  
In this article we will introduce a software architecture that implements the DDD (Domain Driven Design) DDD was introduced by Eric Evan in the “Bleu Book” : Domain-Driven Design: Tackling Complexity in the Heart of Software. Hexagonal Architecture is also a good candidate for implementing DDD correctly.  
16
11. 11  
[](https://daily.dev/posts/guide-to-arrow-functions-in-javascript-u-mltymvs "Guide to Arrow Functions in JavaScript")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Guide to Arrow Functions in JavaScript  
Arrow Functions are a unique feature introduced in the ES6 version of JavaScript. Arrow functions are great for compact code, writing anonymous functions, simplifying event listeners, etc. With an arrow function we can make an efficient and clean line of code:.map() and .reduce() to name a couple. With a regular function you will often define some parameters.  
15  
2
12. 12  
[](https://daily.dev/posts/nestjs-app-in-docker-22oydjw2u "NestJS App in Docker")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
NestJS App in Docker  
NestJS is a framework which aims to simplify server-side development. It provides a consistent and abstract interface on top of the usual tools such as express. We’ll be using NestJS to create a basic web server, and using Docker to containerise the application. In just a few steps we’ve been able to Dockerise a simple NestJS app.  
14
13. 13  
[](https://daily.dev/posts/javascript--iterators-and-generators--y0uuvywd "Javascript -Iterators and Generators")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Javascript -Iterators and Generators  
The ‘for…of the loop’ can create a loop over any iterable object, not just an array. A generator function is a function marked with the \* and has at least one yield-statement in it. Every next()call on the generator executes every line of code until it encounters the next yield and suspends its execution.  
14
14. 14  
[](https://daily.dev/posts/start-writing-sql-queries-part-ii-d4357tnym "Start writing SQL queries — Part II")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
Start writing SQL queries — Part II  
The IN operator is shorthand for many OR conditions. The BETWEEN operator allows you to define a range to which the given value belongs. The NOT operator can be added to a WHERE clause to negate the condition that is placed after it. The LIKE operator checks whether the specified string matches a defined pattern.  
13
15. 15  
[](https://daily.dev/posts/golang-beginner-unit-testing-tutorial-rupvhdql7 "GoLang Beginner Unit Testing Tutorial")  
Article  
![Avatar of towardsdev](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2c710db2750a4a70835862534cb7c9d4)Towards Dev · 4y  
GoLang Beginner Unit Testing Tutorial  
GoLang Beginner Unit Testing Tutorial. The goal of unit testing is to enable sustainable growth of the software project. With testing, programmers aim to detect any potential problems before deploying the application to production. We can easily test HTTP handlers without the cost of an integration test thanks to net/http/httptest package.  
12

[See all Towards Dev archives](/sources/towardsdev/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/towardsdev/best-of/2022/04#page","url":"https://daily.dev/sources/towardsdev/best-of/2022/04","name":"Best Towards Dev Posts — April 2022","description":"The most upvoted Towards Dev posts from April 2022, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/towardsdev/best-of/2022/04#items","numberOfItems":15,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/web-scraping-with-javascript-and-node-js-mlp12sova","name":"Web scraping with JavaScript and Node.js"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/building-a-professional-api-with-nodejs-typescript-expressjs-mongodb-jest-deploy-to-heroku-p-um74efdkz","name":"Building a professional API with NodeJS, Typescript, ExpressJS, MongoDB, Jest + Deploy to Heroku — PART 4"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/how-do-you-decide-if-node-js-is-suitable-for-building-a-particular-type-of-application--isekvstcb","name":"How do you decide if Node.JS is suitable for building a particular type of application?"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/javascript-promises-xbwf6hizt","name":"JavaScript Promises"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/kubernetes-architecture-yvwmqkm","name":"Kubernetes Architecture"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/node-js--event-loop-gvhal0uke","name":"Node.js -Event Loop"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/restful-api-with-express-and-nodejs-3opmygpln","name":"RESTful API with Express and NodeJS"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/take-pictures-in-browser-with-javascript-cnzrpfnx","name":"Take Pictures in Browser with JavaScript"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/creating-a-nodejs-restful-api-without-expressjs-part-1-nrgamp-1l","name":"Creating a NodeJS RESTful API without ExpressJS— Part 1"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/hexagonal-architecture-and-domain-driven-design-w-z1v21rs","name":"Hexagonal architecture and Domain Driven Design"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/guide-to-arrow-functions-in-javascript-u-mltymvs","name":"Guide to Arrow Functions in JavaScript"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/nestjs-app-in-docker-22oydjw2u","name":"NestJS App in Docker"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/javascript--iterators-and-generators--y0uuvywd","name":"Javascript -Iterators and Generators"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/start-writing-sql-queries-part-ii-d4357tnym","name":"Start writing SQL queries — Part II"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/golang-beginner-unit-testing-tutorial-rupvhdql7","name":"GoLang Beginner Unit Testing Tutorial"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"Towards Dev","item":"https://daily.dev/sources/towardsdev"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/towardsdev/best-of"},{"@type":"ListItem","position":5,"name":"April 2022"}]}]}
```

