Startup & Basics
1. Basic HTTP Server
const http = require ( ' http ' );
http . createServer (( req , res ) => {
res . write ( ' Hello, Node.js! ' );
res . end ();
}). listen ( 3000 , () => console . log ( ' Server running on port 3000 ' ));
Enter fullscreen mode
Exit fullscreen mode
2. Express Server Boilerplate
const express = require ( ' express ' );
const app = express ();
app . get ( ' / ' , ( req , res ) => res . send ( ' Hello Express ' ));
app . listen ( 3000 , () => console . log ( ' Express running ' ));
Enter fullscreen mode
Exit fullscreen mode
3. Serve Static Files with Express
app . use ( express . static ( ' public ' ));
Enter fullscreen mode
Exit fullscreen mode
4. CORS Setup
const cors = require ( ' cors ' );
app . use ( cors ());
Enter fullscreen mode
Exit fullscreen mode
5. Parse Command-line Arguments
const args = process . argv . slice ( 2 );
console . log ( args );
Enter fullscreen mode
Exit fullscreen mode
File System
6. Read a File (Async)
const fs = require ( ' fs ' );
fs . readFile ( ' file.txt ' , ' utf8 ' , ( err , data ) => {
if ( err ) throw err ;
console . log ( data );
});
Enter fullscreen mode
Exit fullscreen mode
7. Write a File (Async)
fs . writeFile ( ' output.txt ' , ' Hello! ' , err => {
if ( err ) throw err ;
});
Enter fullscreen mode
Exit fullscreen mode
8. Append to a File
fs . appendFile ( ' output.txt ' , ' \n Append this! ' , err => {
if ( err ) throw err ;
});
Enter fullscreen mode
Exit fullscreen mode
9. Delete a File
fs . unlink ( ' output.txt ' , err => {
if ( err ) throw err ;
});
Enter fullscreen mode
Exit fullscreen mode
10. Read Directory
fs . readdir ( ' ./ ' , ( err , files ) => {
if ( err ) throw err ;
console . log ( files );
});
Enter fullscreen mode
Exit fullscreen mode
HTTP & API
11. Fetch with node-fetch
const fetch = require ( ' node-fetch ' );
fetch ( ' https://api.example.com/data ' )
. then ( res => res . json ())
. then ( data => console . log ( data ));
Enter fullscreen mode
Exit fullscreen mode
12. Axios GET Request
const axios = require ( ' axios ' );
axios . get ( ' https://api.example.com/users ' )
. then ( res => console . log ( res . data ));
Enter fullscreen mode
Exit fullscreen mode
13. REST API with Express
app . get ( ' /api/items ' , ( req , res ) => { res . json ([{ name : ' item1 ' }]); });
Enter fullscreen mode
Exit fullscreen mode
14. Express Route Params
app . get ( ' /user/:id ' , ( req , res ) => {
res . send ( req . params . id );
});
Enter fullscreen mode
Exit fullscreen mode
15. Express Error Handler
app . use (( err , req , res , next ) => {
res . status ( 500 ). send ( ' Something broke! ' );
});
Enter fullscreen mode
Exit fullscreen mode
Middleware & Logging
16. Morgan HTTP Logger
const morgan = require ( ' morgan ' );
app . use ( morgan ( ' dev ' ));
Enter fullscreen mode
Exit fullscreen mode
17. Custom Logger Middleware
app . use (( req , res , next ) => {
console . log ( ` ${ req . method } ${ req . url } ` );
next ();
});
Enter fullscreen mode
Exit fullscreen mode
18. Helmet Security Middlewares
const helmet = require ( ' helmet ' );
app . use ( helmet ());
Enter fullscreen mode
Exit fullscreen mode
19. Body Parser (Built-in in Express v4.16+)
app . use ( express . json ());
app . use ( express . urlencoded ({ extended : true }));
Enter fullscreen mode
Exit fullscreen mode
20. Setting a Custom Header
app . use (( req , res , next ) => {
res . setHeader ( ' X-Powered-By ' , ' Node.js ' );
next ();
});
Enter fullscreen mode
Exit fullscreen mode
Authentication & Security
21. Bcrypt for Password Hashing
const bcrypt = require ( ' bcrypt ' );
const hash = await bcrypt . hash ( ' mypassword ' , 10 );
Enter fullscreen mode
Exit fullscreen mode
22. JWT Token Generation
const jwt = require ( ' jsonwebtoken ' );
const token = jwt . sign ({ userId : 1 }, ' yoursecret ' );
Enter fullscreen mode
Exit fullscreen mode
23. Validate JWT Middleware
app . use (( req , res , next ) => {
const token = req . headers . authorization ;
try {
jwt . verify ( token , ' yoursecret ' );
next ();
} catch ( err ) {
res . status ( 401 ). send ( ' Unauthorized ' );
}
});
Enter fullscreen mode
Exit fullscreen mode
24. Rate Limiting
const rateLimit = require ( ' express-rate-limit ' );
app . use ( rateLimit ({ windowMs : 60 * 1000 , max : 100 }));
Enter fullscreen mode
Exit fullscreen mode
25. XSS Protection
const xss = require ( ' xss-clean ' );
app . use ( xss ());
Enter fullscreen mode
Exit fullscreen mode
Database Snippets (MongoDB & SQL)
26. MongoDB Connection with Mongoose
const mongoose = require ( ' mongoose ' );
mongoose . connect ( ' mongodb://localhost/mydb ' )
. then (() => console . log ( ' Mongo connected ' ));
Enter fullscreen mode
Exit fullscreen mode
27. Create Mongoose Model
const User = mongoose . model ( ' User ' , { name : String , age : Number });
Enter fullscreen mode
Exit fullscreen mode
28. Find in Mongoose
User . find ({ age : { $gte : 18 } }). then ( users => console . log ( users ));
Enter fullscreen mode
Exit fullscreen mode
29. Insert in Mongoose
const user = new User ({ name : ' John ' , age : 30 });
user . save ();
Enter fullscreen mode
Exit fullscreen mode
30. PostgreSQL Query (pg module)
const { Client } = require ( ' pg ' );
const client = new Client ();
await client . connect ();
const res = await client . query ( ' SELECT NOW() ' );
Enter fullscreen mode
Exit fullscreen mode
Modern Node.js Features
31. ES Modules
// package.json: { "type": "module" }
import fs from ' fs ' ;
Enter fullscreen mode
Exit fullscreen mode
32. Top-level Await
// Top-level await is allowed in ESM
const res = await fetch ( ' https://api.example.com ' );
console . log ( await res . json ());
Enter fullscreen mode
Exit fullscreen mode
33. Optional Chaining
const name = user ?. profile ?. name ;
Enter fullscreen mode
Exit fullscreen mode
34. Nullish Coalescing
const port = process . env . PORT ?? 3000 ;
Enter fullscreen mode
Exit fullscreen mode
35. Async/Await with Try-Catch
try {
const data = await axios . get ( ' /api ' );
} catch ( e ) {
console . error ( e );
}
Enter fullscreen mode
Exit fullscreen mode
Real-Time & WebSocket
36. Simple WebSocket Server
const WebSocket = require ( ' ws ' );
const wss = new WebSocket . Server ({ port : 8080 });
wss . on ( ' connection ' , ws => ws . send ( ' Hello client! ' ));
Enter fullscreen mode
Exit fullscreen mode
37. Real-time Events with Socket.IO
const io = require ( ' socket.io ' )( 3001 );
io . on ( ' connection ' , socket => {
socket . emit ( ' welcome ' , ' Connected! ' );
});
Enter fullscreen mode
Exit fullscreen mode
Utility & Useful Patterns
38. Debounce Utility
function debounce ( fn , ms ) {
let timeout ;
return (... args ) => {
clearTimeout ( timeout );
timeout = setTimeout (() => fn . apply ( this , args ), ms );
};
}
Enter fullscreen mode
Exit fullscreen mode
39. Generate UUID
const { v4 : uuidv4 } = require ( ' uuid ' );
const id = uuidv4 ();
Enter fullscreen mode
Exit fullscreen mode
40. Read Environment Variables
require ( ' dotenv ' ). config ();
console . log ( process . env . MY_SECRET );
Enter fullscreen mode
Exit fullscreen mode
41. Global Error Handling
process . on ( ' uncaughtException ' , err => {
console . error ( err );
process . exit ( 1 );
});
Enter fullscreen mode
Exit fullscreen mode
42. Sleep Utility
const sleep = ms => new Promise ( res => setTimeout ( res , ms ));
Enter fullscreen mode
Exit fullscreen mode
Stream & Buffer
43. Read Stream
const stream = fs . createReadStream ( ' file.txt ' );
stream . on ( ' data ' , chunk => { console . log ( chunk . toString ()); });
Enter fullscreen mode
Exit fullscreen mode
44. Buffer from String
const buffer = Buffer . from ( ' hello ' );
Enter fullscreen mode
Exit fullscreen mode
45. Pipe Streams
fs . createReadStream ( ' input.txt ' ). pipe ( fs . createWriteStream ( ' output.txt ' ));
Enter fullscreen mode
Exit fullscreen mode
Deployment & Production
46. Cluster Module for Multi-core
const cluster = require ( ' cluster ' );
if ( cluster . isMaster ) {
for ( let i = 0 ; i < 3 ; i ++ ) cluster . fork ();
} else {
// Worker process code
}
Enter fullscreen mode
Exit fullscreen mode
47. Graceful Shutdown
process . on ( ' SIGTERM ' , () => {
server . close (() => process . exit ( 0 ));
});
Enter fullscreen mode
Exit fullscreen mode
48. Serving a PDF File
app . get ( ' /pdf ' , ( req , res ) => {
res . contentType ( ' application/pdf ' );
fs . createReadStream ( ' file.pdf ' ). pipe ( res );
});
Enter fullscreen mode
Exit fullscreen mode
Testing
49. Simple Mocha Test
const assert = require ( ' assert ' );
describe ( ' Math ' , () => {
it ( ' adds numbers ' , () => {
assert . strictEqual ( 1 + 1 , 2 );
});
});
Enter fullscreen mode
Exit fullscreen mode
50. Mock with Jest
jest . mock ( ' ./db ' );
Enter fullscreen mode
Exit fullscreen mode
Top comments (0)