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.
'TIL: Today I Learned' 카테고리의 다른 글
[TIL] 20201228 Authentication from "Scratch" (0) | 2020.12.28 |
---|---|
[TIL] 20201226 Express Session & Flash (0) | 2020.12.26 |
[TIL] 20201221 Data Relationships With Mongo (0) | 2020.12.21 |
[TIL] 20201219 Handling Errors in Express Apps (0) | 2020.12.19 |
[TIL] 20201218 Middleware: The Key To Express (0) | 2020.12.19 |