API Design in Node.js, v4 Tooling Overview
Transcript from the "Tooling Overview" Lesson
>> So now that we know what we're gonna be doing in this course, let's talk about what are we gonna be using in this course. So if you follow me into the Tools section here, we got a couple of different areas that we have to cover, and then what tools we're gonna use in those different areas.
[00:00:36] And it behaves very similar to the environment that's in the browser, just different globals and things like that. And the reason I chose this one is because, one, it's the one I'm most comfortable with. Two, if you've ever done any front end development work with any modern stack, you already used node.
[00:00:51] Believe it or not, you already know how to use it. You ever did a import, you ever did a require, you ever worked with a build system before, all of that is Node.js, so you're already using it, so we're just piggy-backing on that. And then, three, it just has really a cool ecosystem that has pretty much any package you can think of that's out there which helps us develop faster.
[00:01:13] And when it comes to frameworks, Node.js is the environment just like the browser might be an environment. But we would probably wanna use a framework to build a server just like you would probably use a framework in a browser like React. So we're gonna use the most chosen champion framework for Node js when it comes to building API's, and that's gonna be Express js.
[00:01:32] Express was with Node from the beginning, it almost feels like they came together, and everyone has been using it ever since. It has the biggest community when it comes to API frameworks with Node js. And pretty much everything is a derivative or inspired by Express at this point.
[00:01:47] So we're gonna using Express for those reasons. And also, again, it's the thing that I'm most comfortable with. I used Express on the previous versions of this course. And to this day, I keep learning new things. So I'm happy to share those with you. Our API wouldn't be that useful if it didn't have a database that it interacted with.
[00:02:04] So this is no different in this course, we are also going to use a database. And in this course, I decided to do something a little different. I decided to use Postgres, which traditionally for the other version of the course, I use Mongo. But for the last year or so, I've actually been using tons of SQL and Postgres, mostly due to a lot of innovation in that space when it comes to serverless technology.
[00:02:25] So my hands have just been so dirty with Postgres, and I've kinda just fell in love with it. So we'll be using Postgres for that, simply because I feel really comfortable with it right now and kinda wanted to mix it up from the traditional Mongo stuff that I've taught in the past.
[00:02:39] But also, it's one of the most popular, if not the most popular database in the world. So having knowledge of working with Postgres, building an API is only gonna help you in your career, so let's do it together. And then lastly, when it comes to hosting, there's just so many different platforms to host an API on, one less now than before, Heroku, but there's still so many out there.
[00:03:02] And when it comes down to choosing one, there's just a plethora of different variables, like costs, user experience, interactivity, there's so many things that go into it. So I'm really excited about talking about hosting, because I chose a platform called render.com, which is relatively new platform. It kinda gives me those early Heroku vibes, but for the more modern stack, super easy to deploy to, very friendly for Node.js developers.
[00:03:29] So we'll be using that to deploy our API, and we'll probably talk about some other ones along the way. All right, so like I said, I like to learn by building things. I like to teach by building things. So in this course, we're actually gonna be building something.
[00:03:43] We're gonna be building this imaginary change log app for users to be able to update their users on all the different features and things in their product. And before we dive into that, I really wanted to take a quick note on a decision that I made with this course.
[00:03:58] So we're gonna be using ES6 modules in this course, which, if you've ever built anything in React, you use the imports and the modules and all the fancy stuff. We're gonna be using that along with TypeScript. So if you haven't used that, that's totally fine. If you have experience with CommonJS, which is the required stuff, then you'll fit right in, it's not a big worry.
[00:04:20] But it's gonna start off using require until we add the TypeScript. I don't wanna throw you off when you see me do require at first, because we're actually gonna switch over and use ES6, I just didn't wanna have to set that up twice. So I just wanted to put that out there.