Introduction to Node.JS Express

21
Node.JS - Express Eueung Mulyana http://eueung.github.io/js/express JS CodeLabs | Attribution-ShareAlike CC BY-SA 1 / 21

Transcript of Introduction to Node.JS Express

Page 1: Introduction to Node.JS Express

Node.JS - ExpressEueung Mulyana

http://eueung.github.io/js/expressJS CodeLabs | Attribution-ShareAlike CC BY-SA

1 / 21

Page 2: Introduction to Node.JS Express

Agenda

Basics

RESTful APIs

2 / 21

Page 3: Introduction to Node.JS Express

Basics

3 / 21

Page 4: Introduction to Node.JS Express

Example #1

$ node ex-01-expressjs.jsExample app listening at http://:::3000

var express = require('express');var app = express();// ----------------------------------app.get('/', function (req, res) { res.send('Hello World!');});// ----------------------------------var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port;

console.log('Example app listening at http://%s:%s', host, port);});

 

4 / 21

Page 5: Introduction to Node.JS Express

The app starts a server and listens on port 3000 forconnections. The app responds with “Hello World!” forrequests to the root URL (/) or route. For every otherpath, it will respond with a 404 Not Found.The req (request) and res (response) are the exact sameobjects that Node provides, so you can invoke req.pipe(),req.on('data', callback), and anything else you would dowithout Express involved.

Express vs. http Module

var http = require('http');var server = http.createServer(function(){});

server.listen(3000, function(){ console.log("Listening on port 3000");});

var express = require('express');var app = express();

var server = app.listen(3000, function(){ console.log('Listening on port %d', server.address().port);});

5 / 21

Page 6: Introduction to Node.JS Express

var express = require('express');var app = express();//--------------------------------------------------app.get('/', function (req, res) { console.log("Got a GET request for the homepage"); res.send('Hello GET'); })//--------------------------------------------------app.post('/', function (req, res) { console.log("Got a POST request for the homepage"); res.send('Hello POST'); })//--------------------------------------------------app.delete('/del_user', function (req, res) { console.log("Got a DELETE request for /del_user"); res.send('Hello DELETE'); })//--------------------------------------------------app.get('/list_user', function (req, res) { console.log("Got a GET request for /list_user"); res.send('Page Listing'); })//--------------------------------------------------// This responds a GET request for abcd, abxcd, ab123cd, and so onapp.get('/ab*cd', function(req, res) { console.log("Got a GET request for /ab*cd"); res.send('Page Pattern Match'); })//--------------------------------------------------var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port

console.log("Example app listening at http://%s:%s", host, port)})

Example #2$> node ex-02.jsExample app listening at http://:::8081Got a GET request for the homepageGot a POST request for the homepageGot a GET request for /list_userGot a DELETE request for /del_userGot a GET request for /ab*cd

6 / 21

Page 7: Introduction to Node.JS Express

7 / 21

Page 8: Introduction to Node.JS Express

$> node ex-03.jsExample app listening at http://:::8081{ first_name: 'Dodol', last_name: 'Garut' }

var express = require('express');var app = express();//-----------------------------------------app.use(express.static('ex-03')); // get '/' langsung//-----------------------------------------app.get('/index-get', function (req, res) { res.sendFile( __dirname + "/ex-03/" + "index-get.html" ); });//-----------------------------------------app.get('/process_get', function (req, res) { response = { first_name:req.query.first_name, last_name:req.query.last_name }; console.log(response); res.end(JSON.stringify(response));});//-----------------------------------------var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port

console.log("Example app listening at http://%s:%s", host, port)});

Example #3 (GET) 

 

 

8 / 21

Page 9: Introduction to Node.JS Express

Example #3 (POST)

 

 

$> node ex-03-post.jsExample app listening at http://:::8081{ first_name: 'dodol via post', last_name: 'garut jg via post'

var express = require('express');var app = express();var bodyParser = require('body-parser');

// Create application/x-www-form-urlencoded parservar urlencodedParser = bodyParser.urlencoded({ extended: falseapp.use(express.static('ex-03'));//-----------------------------------------------app.get('/index-post', function (req, res) { res.sendFile( __dirname + "/ex-03/" + "index-post.html" );})//-----------------------------------------------app.post('/process_post', urlencodedParser, function (req, res) response = { first_name:req.body.first_name, last_name:req.body.last_name }; console.log(response); res.end(JSON.stringify(response));})//-----------------------------------------------var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port

console.log("Example app listening at http://%s:%s", host, port)})

9 / 21

Page 10: Introduction to Node.JS Express

index-get.html

<html><body><form action="http://127.0.0.1:8081/process_get" method="GET" First Name: <input type="text" name="first_name"> <br>

Last Name: <input type="text" name="last_name"> <input type="submit" value="Submit"></form></body></html>

index-post.html

<html><body><form action="http://127.0.0.1:8081/process_post" method="POST" First Name: <input type="text" name="first_name"> <br>

Last Name: <input type="text" name="last_name"> <input type="submit" value="Submit"></form></body></html>

10 / 21

Page 11: Introduction to Node.JS Express

Example #4File Uploads

app.post('/file_upload', upload.single('file'), function (req, res) console.log(req.file.originalname); console.log(req.file.path); console.log(req.file.mimetype);

var file = __dirname + "/ex-04/result/" + req.file.originalname; fs.readFile( req.file.path, function (err, data) { fs.writeFile(file, data, function (err) { if( err ){ console.log( err ); } else { response = { message:'File uploaded successfully' console.log( response ); res.end( JSON.stringify( response ) ); }); });});

var express = require('express');var app = express();var fs = require("fs");

var bodyParser = require('body-parser');var multer = require('multer');//--------------------------app.use(express.static('ex-04/public'));app.use(bodyParser.urlencoded({ extended: false }));var upload = multer({ dest: 'ex-04/tmp/'});//--------------------------app.get('/index-upload', function (req, res) { res.sendFile( __dirname + //--------------------------// ...//--------------------------var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port

console.log("Example app listening at http://%s:%s", host, port)});

11 / 21

Page 12: Introduction to Node.JS Express

Example #4$> node ex-04.jsExample app listening at http://:::8081Drones.pdfex-04\tmp\0c1fd33b722f40f26cb34d35f28f72d1application/pdf{ message: 'File uploaded successfully', filename: 'Drones.pdf' }

<html><head><title>File Uploading Form</title></head><body> <h3>File Upload:</h3> Select a file to upload: <br /> <form action="http://127.0.0.1:8081/file_upload" method="POST" enctype="multipart/form-data"> <input type="file" name="file" size="50" /> <br /> <input type="submit" value="Upload File" /> </form></body></html>

 

12 / 21

Page 13: Introduction to Node.JS Express

Example #5cookie-parser

$> node ex-05.jsExample app listening at http://:::8081Cookies: { Cho: 'Kim', Greet: 'Hello' }Cookies: {}

$> curl http://localhost:8081 --cookie "Cho=Kim;Greet=Hello"Request Received!$> curl http://localhost:8081Request Received!

var express = require('express');var cookieParser = require('cookie-parser');//----------------------------------------var app = express();app.use(cookieParser());//----------------------------------------app.get('/', function(req, res) { console.log("Cookies: ", req.cookies); res.send('Request Received!'); });//----------------------------------------var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port

console.log("Example app listening at http://%s:%s", host, port)});

13 / 21

Page 14: Introduction to Node.JS Express

RESTful APIs

14 / 21

Page 15: Introduction to Node.JS Express

var express = require('express');var app = express();var fs = require("fs");//------------------// case insensitiveapp.get('/listUsers', function (req, res) { fs.readFile( __dirname + "/" + "ex-06-users.json", 'utf8' console.log( data ); res.end( data ); });});//------------------var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port

console.log("Example app listening at http://%s:%s", host, port)});

Example #6Using Flat JSON File

GET /listusers 

15 / 21

Page 16: Introduction to Node.JS Express

Example #6POST /adduser

var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("Example app listening at http://%s:%s", host, port)});

var express = require('express');var app = express();var fs = require("fs");var bodyParser = require('body-parser');//------------------app.use(bodyParser.urlencoded({ extended: true }));app.use(bodyParser.json());//------------------function saveJson (filename,filecontent) { fs.writeFile(filename, filecontent, function(err) { if (err) { return console.error(err); } });}//------------------app.post('/addUser', function (req, res) { fs.readFile( __dirname + "/" + "ex-06-users.json", 'utf8' data = JSON.parse( data ); //console.log(req.body);

data["user" + req.body.id] = {} data["user" + req.body.id].name = req.body.name data["user" + req.body.id].password = req.body.password data["user" + req.body.id].profession = req.body.profession data["user" + req.body.id].id = +req.body.id console.log( data ); res.end( JSON.stringify(data)); saveJson( __dirname + "/" + "ex-06-users.json", JSON.stringify(data) ); });});

16 / 21

Page 17: Introduction to Node.JS Express

17 / 21

Page 18: Introduction to Node.JS Express

var express = require('express');var app = express();var fs = require("fs");// ---------------------app.get('/:id', function (req, res) { fs.readFile( __dirname + "/" + "ex-06-users.json", 'utf8' data = JSON.parse( data ); var user = data["user" + req.params.id] console.log( user ); res.end( JSON.stringify(user)); });});// ---------------------var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("Example app listening at http://%s:%s", host, port)});

Example #6GET /:id 

18 / 21

Page 19: Introduction to Node.JS Express

Example #6DELETE /deleteuser 

var express = require('express');var app = express();var fs = require("fs");var bodyParser = require('body-parser');//------------------app.use(bodyParser.urlencoded({ extended: true }));app.use(bodyParser.json());//------------------function saveJson (filename,filecontent) { fs.writeFile(filename, filecontent, function(err) { if (err) { return console.error(err); } });}// ---------------------app.delete('/deleteUser', function (req, res) { fs.readFile( __dirname + "/" + "ex-06-users.json", 'utf8' data = JSON.parse( data ); delete data["user" + req.body.id];

console.log( data ); res.end( JSON.stringify(data)); saveJson( __dirname + "/" + "ex-06-users.json", JSON.stringify(data) ); });});// ---------------------var server = app.listen(8081, function () { var host = server.address().address var port = server.address().port console.log("Example app listening at http://%s:%s", host, port)});

19 / 21

Page 21: Introduction to Node.JS Express

ENDEueung Mulyana

http://eueung.github.io/js/expressJS CodeLabs | Attribution-ShareAlike CC BY-SA

21 / 21