Node.js Application Setup¶
We need to open our console, and naviagte to our todo_project
folder we created at the beggining.
There, besides client-app
folder we want to create new folder called server-app
where we will initiate our Node.js application.
After you create the folder you can naviage to it through Console or VS Code Terminal and execute command
npm init
You will be asked to answer some question so npm can create your project. Value between () is the default value, if you click Enter the value will remain, otherwise you can enter your value and click proceed.
You can answer them as we did below:
package name: (server-app)
version: (1.0.0)
description: Sample Todo List server app
entry point: (index.js)
test command:
git repository:
keywords:
author: Your Name
license: (ISC)
After you enter the last value it will basically ask you if you are sure you want to save entered values.
About to write to /Users/<your-username>/server-app/package.json:
{
"name": "server-app",
"version": "1.0.0",
"description": "Sample Todo List server app",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Your Name",
"license": "ISC"
}
Is this OK? (yes) yes
package.json
file should be generated inside server-app
folder.
Since we defined our "entry point"
as "index.js"
, let's create that file inside server-app
folder and leave it empty for now.
Now, we want to install and setup Express.js
framework for Node, but we first need to install it by executing the following command inside server-app folder
npm install --save express
After we install Express, we want to setup simple express application inside our index.js
.
const express = require('express');
const app = express();
const port = 3001;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
server-app
folder and execute command
node index.js
After you run it successfully you should see this message in your terminal
Example app listening at http://localhost:3001
And if you visit http://localhost:3001 in your browser you should see "Hello World!" message.
That means that you initialized your Node + Express application successfully, congrats!
We need to make sure our client application will be allowed to send data without restrictions.
For this part we will need to apply CORS rules using cors
library.
What is CORS?
Cross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources.
To install it just execute
npm install --save cors
Also, lets update our index file to apply CORS settings.
const express = require('express');
const cors = require('cors');
const app = express();
const port = 3001;
app.use(bodyParser.json());
app.use(cors({origin: '*'}));
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
As you can see, we setup our server to be able to recieve requests from any (*) origin. You can also define just specific origin or many origins.