Create Server Project
Create LearnExpressJSRestAPIWithRealApps folder and select to this folder in Visual Studio Code
Install Express.JS
Use the following command to install Express.JS:
npm install express --save
npm install body-parser --save
npm install cookie-parser --save
npm install multer --save
Create Rest API
Create a new folder named api inside the server project. Create demo.api.js file inside api folder contains Rest APIs delete data from client
var DemoAPI = {
delete: function (request, response) {
console.log('Product Id: ' + request.params.id);
}
};
module.exports = DemoAPI;
Create Rest API Routing
Inside the api folder create a new file named index.js. This file will hold all the routes needed for rest api in server.
var express = require('express');
var router = express.Router();
var DemoAPI = require('./demo.api');
router.delete('/demo/delete/:id', DemoAPI.delete);
module.exports = router;
Create Rest API Server
At the root of server project, create a file named server.js. This will be the entry point into node application. This will start the server and listen on a local port
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.use('/api', require('./api/index'));
var server = app.listen(9090, function () {
var host = server.address().address;
var port = server.address().port;
console.log("Server listening at http://%s:%s", host, port)
});
Structure of Server Project
Create Client Project
Create LearnExpressJSRestAPIWithRealApps_Client folder and select to this folder in Visual Studio Code
Install Modules
Use the following command to install http module
npm install http --save
Create Demo Rest API Client
Create a new folder named api inside the client folder. Create demo.api.js file inside api folder contains method call Rest API from server
var http = require('http');
var DemoAPIClient = {
delete: function (id, callback) {
var options = {
hostname: 'localhost',
port: 9090,
path: '/api/demo/delete/' + id,
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
}
};
return http.request(options, function (response) {
response.on('end', function () {
callback({
status: response.statusCode
});
});
response.on('error', function (error) {
callback({
status: response.statusCode,
error: error.message
});
});
}).end();
}
};
module.exports = DemoAPIClient;
Structure of Client Project
Test Client Project
At the root of client project, create a file named client.js. This will call Rest API and display results
var DemoAPI = {
delete: function (request, response) {
console.log('Product Id: ' + request.params.id);
}
};
module.exports = DemoAPI;
Output
Output from Client
Status: 200
Output from Server
Product Id: p01