Nodejs Book: Chapter 1

This this chapter, we go over the basics of the deceptively simple “hello world” server in Nodejs. And go over some of the concepts into why the same message will be returned to the user no matter what url is requested.

Nodejs Book (Abstract)

In 2017 I wrote a small “book” about getting started with Nodejs as an HTTP server. The book has been sitting on my hard drive for the last three years, so I figured if there is nothing better to do with it, then I might as well post it to this blog. To post a bit of background to this book, I should probably explain some of my experience with Nodejs. In 2011 was a student in university getting into server-side programming and I was having trouble of managing the differences between client-side Javascript and server-side PHP. That’s when the first video with Ryan Dahl came out announcing Nodejs.

WSD IT Academia

We now have a dedicated page for WSD IT Academia, which can be found here: It describes what we educate, and provides a full list of the curriculum.

Concept Images for EmraJs

While I haven’t had a lot of time to be able to spend on investigating into Jaxer to be able to streamline the install process. I have had a chance to take some time in working on some concept images for the EmraJs logo and mascot. So I guess we should start with the important part, which is the mascot.

Creating a Signup flow

It might have been a good idea to use a VPS since it has allowed me to get some perspective on something I’ve been thinking about for the last few weeks, which is how to get people to sign up for your service and get started using the service. And what better way to learn from the best since the VPS services have a lot of innovation and funding and marketing to make them stand out and be easier to use than other services.

Looking for targets

Since I haven’t had a chance to do a lot of testing recently, I think I can go ahead and continue to look for aspects of the server-side application that can be removed or simplified. In terms of testing, I think could try using multiple Pi’s, and always have a working version on hand, so when things break I at least have something to fallback on to say, “no really it works, look”. I was thinking about maybe using KVM to create a virtual Pi for testing, but that requires setting up a new server, since I’m always paranoid about messing up the bridge-network connection and having to trouble-shoot the network so that it works again.

Japan Visa Renewal Shizuoka Edition

My first application for a visa extension in Japan was three years ago. And in comparison to applying for a student visa, or graduating from college and applying to a company, there is no monumental event that marks when you need to renew your work visa. You just kind of have to remember. So like any responsible member of society I completely forgot until the last minute, and looked on the immigration page which basically only had the application form, a portrait photo and your passport. Thinking that “that sounds too easy”, I grabbed the listed documents and got up early the next day to go to the immigration office in Shinagawa.

Server API Goals

Since I’ve been a little hasty about jumping in and cleaning out the server-side API, I figured it would be a good idea to step back and re-evaluate my goals for the server API. For installation we had a somewhat simple task of simply removing anything that wasn’t needed to compile, and we were able to take our time and focus on one element at a time. With the server-side API, we don’t exactly have the same luxury as we don’t know how interdependent the various modules are to each other.

Framework Notes (serverStart)

Throwing the alphabetical approach out the window, there’s file that I’m pretty interested in looking at. And that file is ServerStart.js. This file get’s loaded when a new Jaxer instance is created in order to initialize the Apps that are recognized for that instance of the server. So getting familiar with this file might help with either simplifying or reducing the number of files needed to run Jaxer.