As anyone who reads this blog knows, I am a Ruby / Rails guy. Yes I flirt with other things from time to but but, at heart, I am a ruby guy and specifically of the Rails flavor. Part of the reason for that is that I adore the set of choices that Rails as a whole makes for me. I look at other communities, say Python or Node, and I always think "Man do I really want to figure out a collection of libraries for Task X, Task Y and Task Z and then figure out if they work together?". I adore that Rails has put together a set of defaults that just plain work together.

Now, that said, sometimes you do have to go farther afield than Rails and this week I found myself needing to put together a basic Node app for one of my students to run with.

Problem Description

What I need to build is effectively a two page web site - a form which a nodejs backend which calls an API and then generates a page of results for the user. It is effectively a specialized travel calculator. This isn't very much but when you don't really know anything about a platform, even the tiniest thing can be problematic.

Things I Read

Here are the articles I looked at:

  • [Hackathon Starter][https://github.com/sahat/hackathon-starter]
  • AirPair NodeJS Tutorial
  • [Building A Simple NodeJS API] (https://medium.freecodecamp.org/building-a-simple-node-js-api-in-under-30-minutes-a07ea9e390d2)

A Starting Point

The best starting point I found was hackathon-starter. It is absolutely more than necessary and needs to be cut back but what I got with this was:

  • a modern looking starter app
  • done in an MVC style fashion
  • complete with CSS that doesn't suck

Useful Commands

These were useful commands:

To create a bare bones, basic Node app:

npm init

To install the nodemon package which lets changes be reloaded dynamically without restarting the app server:

npm install nodemon -g

Stack Overflow on Installing Nodemon

To run the app via nodemon:

nodemon app.js

And that's about all I have time for right now but it is a real start on the process. The next step is to write the application specific code.