Disconnect in back end challenges

Hello all.

I’ve made my way almost all the way through the learnyounode challenges, but I’m affraid I’m having a mental disconnect. I understand all the javascript that’s going on, however, I just don’t understand the practicality behind all this. I’m still not quite sure what node does fully, and additionally, I don’t know how and where there is a server that I’m “communicating” to in order to complete these challenges. If someone can help fill in the gaps, that would be great.

Why don’t you install Node locally on your machine and start making some full-stack websites? If you run your own server instead of Cloud9 or wherever, you should start to understand a little bit more about how you are serving files, routing, etc.

In the front end projects, ajax calls are made to a server. The apis you used on the front end projects all made calls to a server. The server side application JSON back. You handled this JSON in your code. Now you will learn how servers handle ajax calls. Node is the programming language you will be using to write your server side code. As @IsaacAbrahamson mentioned initially your server will be on your computer. Your client( the browser ex. chrome, edge, firefox ) will make request to your server( node ) application. The node application will respond back with data( .html, .json, xml ) files to your client( browser ). The client-server wikipedia page gives you a brief discussion on how data is moved back and forward between the two. It sounds confusing at first but once you look at the diagrams it makes more sense. Also, remember initially your client and server are both on your computer.

Im seconding what @IsaacAbrahamson said. Actually building your own server on your on local machine and outside of the cloud is going to really help you understand what your server side code is doing and what it is responsible for because you write it!

In a nutshell your server listens for you to hit a particular route in the browser. When that route is hit your server will perform the logic that you tell it to (save information to a DB, retrieve a user from the DB etc) and then (usually) send a new page back to be rendered in the browser with some information passed in to the page.

@IsaacAbrahamson @Swoodend @Reggie01

Thanks for the help, all of you. It’s starting to make more sense. I’ll just keep going along and see if I can figure it out.

I had the same difficulty not only learning the material but its context. Learnyoumongo was the same for me, and now that I’m on the third api project and need to use mongodb, I had to watch Net Ninja’s tutorials on it to understand what it was doing. Working locally on my machine for the first api project really helped me gain a solid understanding of nodejs, though it took some slowdown at the end to figure out all the heroku stuff. When you see opportunities to play around with somethind and see the different outcomes, take them. Good luck!