본문 바로가기
TIL: Today I Learned

[TIL] 20201222 Express Router & Cookies

by 김알리 2020. 12. 22.

Router

  • An isolated instance of middleware and routes.
  • Helps grouping routes into separate files.

express.Router()

  • Example
//index.js

const express = require('express');
const app = express();
const shelterRoutes = require('./shelters');

app.use('/shelters', shelterRoutes);
//shelters.js

const express = require('express');
const router = express.Router();

router.get('/', (req, res) => { //'/' is actually '/shelters'
    res.send('All Shelters');
})

router.get('/:id', (req, res) => {
    res.send('One Shelter');
})

module.exports = router;

Express Router & Middleware

  • Each router can have its own middleware
  • Example
//index.js

//for every route
app.use((req, res, next) => {
    res.send('Middleware?'); 
})



//shelters.js

//for /shelters routes only
router.use((req, res, next) => {
    res.send('Middleware?');
})

 

 

Cookies

  • Little bits of information that are stored in a user's browser when browsing a particular website.
  • Once a cookie is set, a user's browser will send the cookie on every subsequent request to the site.
  • Cookes allow us to make HTTP stateful.
  • Acts as a unique identifier

Setting up cookies - Example

//index.js

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

app.get('/setname', (req, res) => {
    res.cookie('name', 'Stevie Chicks');
    res.send('Sent you a cookie!');
})
  • Cookies can have many different kinds of values, not just a key-value pair.
  • One route can have many cookies.

Cookies Parser Middleware

  • install : npm i cookie-parser
  • How to use - Example
//index.js

const cookieParser = require('cookie-parser');
app.use(cookieParser());

app.get('/greet', (req, res) => {
    console.log(req.cookies); //prints the cookies
    res.send("Hey There");
})

Signing Cookies

  • 'Signing' in programming refers to digital signiture or cryptographic signiture.
  • For verifying its integrity, that comething hasn't changed.
  • Example - Signing cookies with cookie parser
//index.js

app.use(cookieParser('Thisissecret'));
app.get('/getsignedcookie', (req, res) => {
    res.cookie('fruit', 'grape', {signed: true});
    res.send('Grape?');
})
  • Example - Unsigning cookies with cookie parser
//index.js

app.get('/verifycookies', (req, res) => {
    res.send(req.signedCookies); //prints signed cookie
})

 

 

 

 

* This post is a summary of Udemy Course "The Web Developer Bootcamp" by Colt Steele.