What Is the most popular combination of technologies used to building Reactjs web apps - node.js

I'm mid PHP/Laravel developer with some exp in jQuery and Vue.js
I want to start self-learning in reactive JS frameworks (for example ReactJS), because I see is the near future in web development.
I checked the [React + redux] is the most popular technology working on browser side, but what about back-end ?
Secured API to PHP/MySQL? or maybe run apps directly on NodeJS server ? if nodejs env. then where will be storing the data ? SQL? NoSQL?
Tell me please what back-end stack is the most popular? or what stack is the near future ?
What about PWA with ReactJS ?
Thank You!

In my experience node.js is more popular for startups and makes it easy to work with since its all javascript.
Java and C# tend to be popular in large enterprise companies
SQL systems, such as MYSQL and PSQL are by and far the most popular options for both small and large companies.
SQL systems such as, Oracle and Microsoft SQL server, are the most popular in extremely large companies.
MongoDB is the most popular NoSQL db but its not used as often in production.
PHP as a server side language is used in about 80% of websites, but that is mostly because of wordpress, I have personally never seen a React frontend being implemented with a PHP backend.
Django and flask are popular python server frameworks but I find them to be popular with AngularJS( the original angular not angular 2+) not React.
The most common stack Ive seen is React, Redux, Express, PSQL, AWS.
https://w3techs.com/technologies/overview/programming_language/all
https://db-engines.com/en/ranking

Hi with my previous experience
ReactJs + Redux + fire base
this is very good technical combination you can use
reactJs , redux , meterilaUI,Sementic UI,ant design for front end.
and fire base can easily connected with your application.
advantage of this architecture the app will real time data application , no end point integration , quickly development , easy to authenticate
sample project
ReactJs + Redux + REST + Spring-boot in this project back end service developed using java spring-boot and it possible for connect any relational data bases such as Oracle , MYSql, NoSql , even any kind of Data bases using Spting-Data-JPA or Hibernate , JPA.
But authentication and state management not much easy. need to implement JWT to any state management method because REST is stateless.
advantage is good for micro services architecture , easy to build react app inside spring boot (packaging as .jar .war) and deployee j2EE server.
sample project
i have already developed project based on these 2 technologies stacks both are worked as my different requirements.

Related

What technologies would necessary to connect to a cloud server from a Node.js backend?

I am relatively new to mobile development and would like to know further information about this specific topic.
I am working on a React Native based mobile application and am now getting around to implementing the back-end for this application. I will need to send data back and forth from the client (the mobile application) to the server (a cloud server). I am aware I can accomplish this with technologies such as a MongoDB database or a Firebase database, however, I would like to try to implement this on a personal cloud server.
How would I go about establishing a connection to a server in node.js so that I may send and receive data?
Thus far, I have looked the node library Express.js, but I am unsure if this is of any relevance as to what I am looking for in terms of a solution to what I am trying to achieve.
First of all, I think you need to have a backend project for making your backend you choose Nodejs
Node JS is a fast JavaScript runtime environment that we use to build server-side applications, but it does not know how to perform serving files, handling requests, and handling HTTP methods, so this is where express js comes in.
Express JS is a Node.js framework designed to build API's web applications cross-platform mobile apps quickly and make node js easy.
Why Express JS?
Express was created to make APIs and web applications with ease
It saves a lot of coding time almost by half and still makes web and
mobile applications are efficient.
The reason behind creating an express framework for node js is:
Time-efficient
Fast
Economical
Easy to learn
Asynchronous
After completing your backend project with either postgres or mongodb database connection and node js you can deploy it to your cloud server and access it from the apis form the front end mobile or web applications.
Another thing I want to mention you can also create some web pages using node handlebars as well.

Is Express.js necessary in learning Node.js?

Most books on Node.js have Express.js sections. Most Node tutorials I've seen are about web development with Node and Express. So, is the knowledge of Express required for a deep understanding of Node?
No, It isn't,
ExpressJs is framework build on top of nodejs, as they are many framework in different programming language it is the same for Javascript in the backend side.
Here is some of example of Framework
Loopback
Sails.js
Koa
Express
In the nodejs world ExpressJS is the popular one, so in many books it's normal to talk about It, as Javascript was firstly build for the web.
But NodeJS can be use for so many kind of application like
Data Streaming Apps
Server-Side Proxy
Big Data Analytics
Wireless Connectivity
System Monitoring Dashboard
Chatbots
And other many sort of application.
In the web world ExpressJS is the popular one.
So you don't have to learn ExpressJS to deep undestand nodejs. And you don't have to learn it if you would not build web application or API. You can also rely packages shiped with nodejs to build any sort of application even web application but it will take you more time than using existing package.]
You can search for any sort of package at NPM
no, a framework is never necessary to learn the language but the opposite, Learning the language is absolutely necessary to learn the framework.
According to express.js: "Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications." thats all.

what are the technologies for building real time applications using Node JS?

i tried to search for many topics because i am planning to build backed and API for real-time application like twitter which has many users interactions , live comments and sharing posts in home page like any social application
i just want what is the best Database type should i use
what is best architecture to build application like this
what topics should i read about
to handle sockets i decided to use node js , which nodejs framework will be suitable in this case
I think that the most robust and fleaibale JS framework is Meteor
http://www.angular-meteor.com/
this frame work allow you to build scaleable apps with one code language all the way from client to DB .
i think that you should see the tutorials that walkthrough a demo app that is exactly what you describe, and there are some very great Git repos that build popular apps using this framework.
Regarding the servers and the scale factor , this is already an IT and automation issue that you need to solve.
for code deployment and frontend servers you can use autoscale techniques that can be found on AWS / GCE .
for DB selection you can use MongoDb that is quite popular or CouchDB . both can work with elastic search that will be the dashboard / stats tool that will show you what is going on.
i think that you will find meteor very easy to learn and build web applications.

beginner node.js: do I really need a full app?

Why I'm looking at node.js
I have a low-traffic site with .html, .css, and .js files. For the purposes of this post, a good analogy is a high school course website for learning javascript. I need to add a tiny bit of backend. I need
1) A small db to store users and their "grades." I've used php+mysql on apache for something like this in the past
2) An ability to evaluate user-submitted javascript server-side and grade the result. Node.js has vm and sandbox, so I figure I should turn to node.js (if you have an alternative approach let me know!).
My issue
I've never used node.js before, and I'm a bit confused by the tutorials out there and how they fit into the "old fashioned" web development context. The hello world tutorials start with making a server. For the purposes of having a tiny backend, that sounded like overkill, until I read this, which explained things a little better, saying that (in simplified terms) node.js replaces apache and has added benefits, etc.
In order to have the capabilities of the tiny backend I list above, is a full node.js app necessary? At this point I don't need persistent I/O. I only need the server-side javascript evaluation. Is there a way to have an "old-fashioned server" serve my html with a php backend for a database (bullet 1 above), but then add a small node.js app evaluating the user-submitted javascript (bullet 2 above)? I'm concerned that if, as a beginner, I run an http server in node.js I would be opening security holes that other super-mature web servers smoothly deal with behind the scenes. Also, if I get a hosting plan with nodejitsu/heroku/etc, do they not serve .html automatically? You have to start from scratch with a server?
First , Its not a bad idea to use node.Js to satisfy your requirement,the uniqueness of NODE and added advantage compared to conventional technologies like Apache-PHP is clearly explained in this following video Why Node.JS is better.The notion of NODE being just used for advanced or complex applications is wrong , you can use node for building applications which are very simple to anything of huge proportion.It would be a not so comfortable task for a node beginner to code without using any frameworks , but by using this web application framework called express , you need not code from scratch and its very easy to setup html pages using its simplified html templating language called JADE and route requests,also you can even use your html pages if you are not willing to use JADE for rendering the views of your application .Here are the series of tutorials which would help you Tutorials on beginning with node.js , Basics of expressJS ,
Advanced express tutorials.
The series of videos also have tutorials on getting connected to the no-SQL database MONGO-DB , Mongo is most popular database that is used alongside NODE backend , here is the video which compares mongo and SQL Mongo V/s SQL.
Using Node would also enhance the scalability of your web application , which is very important for any web based services .
Node is not meant to be used alongSide PHP , those are completly two different backend technologies , why would you want to use PHP-Apache and node together when you can very easily build the application using express framework , i suggest go ahead with NODE-Express-Mongo .

Is this a good web application architecture?

I'm trying to build a website myself but I also want to build a native mobile application that will access the same DB in the future.
What I'm thinking now is using Node.js to build Web Services wrapper for the DB and every DB operation will be executed via web service API. And for the website framework, I'm going to use Rails.
Please let me know whether this is a good architecture or not. I'm not sure whether encapsulate data with Web Services is a good idea. Will there be any performance issue? And if it's feasible, which DB should I use? And can rails communicate with DB via web services?
Thanks a lot!
Update
Why do people down vote this question??
I think you have more technology than needed in your architecture right now.
Personally I would create a REST api on top of the DB (using either node or Rails - both are super easy to do this with and both can use pretty well any db)
Then you can write any number of "apps" for the front end process, whether they are web apps, ios apps, android apps, etc... They will all get their data from your REST api on the backend.
You might even consider writing the front end as a single page app using Angular, Knockout or Backbone, something like that. If you do that with node, your entire stack will essentially be written in javascript. It can get confusing for a newb, but it's super powerful.

Resources