Introduction to Node.js, v2 Executing Node
Transcript from the "Executing Node" Lesson
>> The first thing I wanna talk about is how we can actually execute a Node program, because there's several ways, but we're really only gonna talk about the important ones. So the first one is called the Node REPL. And REPL stands for read evaluate, print, loop. It's basically an interactive shell that's gonna be in the execution context of the runtime of your choice.
[00:00:40] So I can come in here and I can do stuff like this, right? So we're gonna do the same thing, but outside of the browser using Node.js. And the way that you can do that is if you just go to your terminal Here we go, here is my terminal.
[00:00:58] I'm actually going to go over to my folder, Am I here? I'm already in here. Okay, so I'll make this bigger. And what you can do is, you can just run the Node. First of all, just to double check you have Node installed, I recommend running which Node, if you're on Mac.
[00:01:16] And it's gonna point to where you have Node installed. You can see that I used nwm, so it's installed in this nwm folder. If you installed it from the actual Node source, you might see something like user bin if you're on Mac, and you'll see it installed there.
[00:01:28] On Windows, I have no idea what it's gonna say when you installed it, but just make sure that you have it. You can also just type in, node version, and see what version of Node you have. Just to make sure it's there. If you're getting an error when you type in the Node command, then it means it's not installed properly.
[00:01:44] So go back and follow those instructions. So once you do have it installed, now we wanna execute on that REPL, we wanna turn it on, you can just type in, node, with no arguments. And you should see something like this, welcome to Node.js, followed by the version that you're on.
[00:01:57] And then you could do something I call type "help" for information. But now we're in this prompt here, and it's pretty much console just like I showed you in the browser. So if I wanted to make a variable like this, you can see I have it, then I could actually just type it in.
[00:02:29] I've even gotten to the point where I'll use the REPL for a calculator versus opening up the calculator app on my computer, because it's just faster to go into terminal and type in, node and do math, than it is to like go on a calculator and click things.
[00:02:41] So I use it for a bunch of random stuff all the time. But you probably won't be using the Node REPL to build any applications as you can tell. I mean, this isn't source code. This code isn't being written to a file anywhere. You can check it in the Git or GitHub.
[00:02:56] So, yeah, you probably couldn't build an application in a REPL, although I'm sure if you were to go search the internet, someone's probably done this before. But that's probably not gonna be you, and I do not recommend trying to build an app in the REPL. It's just a playground to get some stuff going.
[00:03:12] And then to exit the REPL, at least on the Mac, I can hit Control C. There we go. Press it again and it will exit for you. I think you can also just type in exit, maybe, let's see if that works. Nope, exit does not work. That's some other REPL.
[00:03:29] I get all these REPLs mixed up. So yeah, I just hit control C to exit that, and that way, I'm not inside of that REPL anymore, and now I'm back inside of my terminal environment here. So, like I said, you don't wanna be running a program inside the Node REPL for all the reasons that I stated.
[00:04:38] So let's start with actually creating a file. And then let's try to execute that file with the Node runtime. So just make a new folder on your computer. I already have one here. It's just a blank folder. I'm gonna open it in VS code. There's nothing in it.
[00:04:53] And I am actually just gonna make a file here inside of this folder. I'm gonna call it index.js. And then what I'm gonna do is, let's try to do something we would normally do in the browser. I'm actually just gonna do an alert here. And I'm gonna say, hello, right?
[00:05:31] So let's give it a try. So I'm gonna go back to my editor, type in, alert, go back to my terminal. And then to execute this file in the Node.js runtime, I just type in, node, just like we did with the REPL, followed by the path to that file.
[00:05:46] So I'm already inside of my files directory here, so it's gonna be relative and this is gonna be index.js. And then I can type in, enter. And immediately, I get an error here. So you can see that I get this thing called, ReferenceError: alert is not defined. And these are the differences that I'm talking about.
[00:06:19] You probably shouldn't have an alert on your site, unless you want people to go running away screaming because it looks like spam, but it will work, right? But it's not gonna work here in Node, because there is no alert. Node doesn't have a user interface. There's something visual to Node.
[00:06:34] It's running on your operating system in the background. There's no CSS. There's no DOM. There is nothing visual about Node.js. It's a OS level language. So we don't have access to something like alert. And even if we did, what would you expect it to do? Would you expect to see a notification pop-up on your computer?
[00:06:53] Because actually, that would be pretty dope and someone should make that, if they haven't already. But no, it doesn't do that. So, these are some of the differences that we're going to discover. So let's actually do something that we can do in Node that does also work in the browser.
[00:07:06] And it's gonna be our favorite friend, console.log, right? I can't live without console.log. So I don't know how much y'all use console.log, but I cannot live without it. It's basically how I debug everything. I have solved many crises with console.log. So let's try to see if it works here in Node.js.
[00:07:30] And you can see, we do get that message, hello. So the console.log works just fine here. So this is where it gets tricky, it's like, well, what works in the browser and what doesn't work in the browser? What works in Node and what doesn't work in Node? The answer is, it depends.
[00:07:44] If it's usually something with UI facing, anything with the DOM, anything like that, like querying a DOM elements, things like that, it's not gonna work in Node because there's nothing there. And then on the flip side, if there's usually something to do with file system or any OS level things like networking, it's probably not gonna work in the browser.
[00:08:02] So I can tell you right now, I don't think anyone remembers all the different things that work. It's more about just, you do this enough, you do a lot of trial and error, you understand what each environment has access to, and you can figure it out from there.
[00:08:15] Besides, the computer will tell you when you're wrong, so you don't have to guess. It'll literally just, as you saw, will tell you if this doesn't work here and that's when you'll know