Tutorial: Node.js for Beginners
If you're brand new to using Node.js, this guide will help you to get started with some basics.
- Try using Node.js in Visual Studio Code
- Create your first Node.js web app using Express
- Try using a Node.js module
- Installing on Node.js on Windows or on Windows Subsystem for Linux
If you are a beginner, trying Node.js for the first time, we recommend installing directly on Windows. For more information, see Should I install Node.js on Windows or Windows Subsystem for Linux
Try NodeJS with Visual Studio Code
If you have not yet installed Visual Studio Code, return to the prerequisite section above and follow the installation steps linked for Windows or WSL.
Open your command line and create a new directory:
mkdir HelloNode, then enter the directory:
echo var msg > app.js
Open the directory and your app.js file in VS Code using the command:
Add a simple string variable ("Hello World"), then send the contents of the string to your console by entering this in your "app.js" file:
var msg = 'Hello World'; console.log(msg);
To run your "app.js" file with Node.js. Open your terminal right inside VS Code by selecting View > Terminal (or select Ctrl+`, using the backtick character). If you need to change the default terminal, select the dropdown menu and choose Select Default Shell.
In the terminal, enter:
node app.js. You should see the output: "Hello World".
Notice that when you type
console in your 'app.js' file, VS Code displays supported options related to the
Create your first NodeJS web app using Express
Express is a minimal, flexible, and streamlined Node.js framework that makes it easier to develop a web app that can handle multiple types of requests, like GET, PUT, POST, and DELETE. Express comes with an application generator that will automatically create a file architecture for your app.
To create a project with Express.js:
Open your command line (Command Prompt, Powershell, or whatever you prefer).
Create a new project folder:
mkdir ExpressProjectsand enter that directory:
Use Express to create a HelloWorld project template:
npx express-generator HelloWorld --view=pug
We are using the
npxcommand here to execute the Express.js Node package without actually installing it (or by temporarily installing it depending on how you want to think of it). If you try to use the
expresscommand or check the version of Express installed using:
express --version, you will receive a response that Express cannot be found. If you want to globally install Express to use over and over again, use:
npm install -g express-generator. You can view a list of the packages that have been installed by npm using
npm list. They'll be listed by depth (the number of nested directories deep). Packages that you installed will be at depth 0. That package's dependencies will be at depth 1, further dependencies at depth 2, and so on. To learn more, see Difference between npx and npm? on StackOverflow.
Examine the files and folders that Express included by opening the project in VS Code, with:
The files that Express generates will create a web app that uses an architecture that can appear a little overwhelming at first. You'll see in your VS Code Explorer window (Ctrl+Shift+E to view) that the following files and folders have been generated:
bin. Contains the executable file that starts your app. It fires up a server (on port 3000 if no alternative is supplied) and sets up basic error handling.
routes. Contains all the route handlers for the application. Two files,
users.js, are automatically generated in this folder to serve as examples of how to separate out your application’s route configuration.
views. Contains the files used by your template engine. Express is configured to look here for a matching view when the render method is called. The default template engine is Jade, but Jade has been deprecated in favor of Pug, so we used the
--viewflag to change the view (template) engine. You can see the
--viewflag options, and others, by using
app.js. The starting point of your app. It loads everything and begins serving user requests. It's basically the glue that holds all the parts together.
package.json. Contains the project description, scripts manager, and app manifest. Its main purpose is to track your app's dependencies and their respective versions.
You now need to install the dependencies that Express uses in order to build and run your HelloWorld Express app (the packages used for tasks like running the server, as defined in the
package.jsonfile). Inside VS Code, open your terminal by selecting View > Terminal (or select Ctrl+`, using the backtick character), be sure that you're still in the 'HelloWorld' project directory. Install the Express package dependencies with:
At this point you have the framework set up for a multiple-page web app that has access to a large variety of APIs and HTTP utility methods and middleware, making it easier to create a robust API. Start the Express app on a virtual server by entering:
npx cross-env DEBUG=HelloWorld:* npm start
DEBUG=myapp:*part of the command above means you are telling Node.js that you want to turn on logging for debugging purposes. Remember to replace 'myapp' with your app name. You can find your app name in the
package.jsonfile under the "name" property. Using
npx cross-envsets the
DEBUGenvironment variable in any terminal, but you can also set it with your terminal specific way. The
npm startcommand is telling npm to run the scripts in your
You can now view the running app by opening a web browser and going to: localhost:3000
Now that your HelloWorld Express app is running locally in your browser, try making a change by opening the 'views' folder in your project directory and selecting the 'index.pug' file. Once open, change
h1= "Hello World!"and selecting Save (Ctrl+S). View your change by refreshing the localhost:3000 URL on your web browser.
To stop running your Express app, in your terminal, enter: Ctrl+C
Try using a Node.js module
Node.js has tools to help you develop server-side web apps, some built in and many more available via npm. These modules can help with many tasks:
|spritesmith||Sprite sheet generation|
|commander.js||Creating command-line applications|
Let's use the built-in OS module to get some information about your computer's operating system:
In your command line, open the Node.js CLI. You'll see the
>prompt letting you know you're using Node.js after entering:
To identify the operating system you are currently using (which should return a response letting you know that you're on Windows), enter:
To check your CPU's architecture, enter:
To view the CPUs available on your system, enter:
Leave the Node.js CLI by entering
.exitor by selecting Ctrl+C twice.
You can use the Node.js OS module to do things like check the platform and return a platform-specific variable: Win32/.bat for Windows development, darwin/.sh for Mac/unix, Linux, SunOS, and so on (for example,
var isWin = process.platform === "win32";).
Submit and view feedback for