1. Installation
2. Running Node.js
- Interactive Mode (REPL):
node
- Type JavaScript directly into the terminal.
console.log("Hello, Node!");
- Run a Script:
node app.js
3. Creating a Basic Node.js App
- Create Project Directory:
mkdir myapp
cd myapp
- Initialize Node Project:
npm init -y
- Create app.js:
console.log("Node.js App Running!");
- Run App:
node app.js
4. Core Modules
const fs = require('fs'); // File System
const http = require('http'); // HTTP Server
const path = require('path'); // Path Utilities
const os = require('os'); // OS Information
const events = require('events'); // Event Emitter
5. Creating an HTTP Server
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello, World!');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
- Visit http://localhost:3000 in your browser.
6. File System (fs)
Reading and Writing Files
const fs = require('fs');
// Read File
fs.readFile('text.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
// Write to File
fs.writeFile('output.txt', 'Hello Node.js!', (err) => {
if (err) throw err;
console.log('File written!');
});
7. Path Module
const path = require('path');
console.log(__dirname); // Directory name
console.log(path.basename(__filename)); // File name
console.log(path.join(__dirname, 'src', 'index.html'));
8. Events and Event Emitters
const EventEmitter = require('events');
const eventEmitter = new EventEmitter();
eventEmitter.on('greet', () => {
console.log('Hello, Event!');
});
eventEmitter.emit('greet');
9. NPM (Node Package Manager)
Install Packages:
npm install express
Install as Dev Dependency:
npm install nodemon --save-dev
Uninstall Package:
npm uninstall express
Global Installation:
npm install -g nodemon
10. Package.json Overview
- Dependencies: Packages required for production.
- devDependencies: Packages required during development.
{
"name": "myapp",
"version": "1.0.0",
"main": "app.js",
"dependencies": {
"express": "^4.18.1"
},
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
}
}
11. Express.js (Basic Setup)
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Welcome to Express!');
});
app.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
12. Middleware in Express
app.use(express.json());
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
});
13. API Routes (CRUD Example)
let users = [{ id: 1, name: 'John' }];
app.get('/users', (req, res) => {
res.json(users);
});
app.post('/users', (req, res) => {
const newUser = req.body;
users.push(newUser);
res.status(201).send('User added');
});
14. Working with JSON
const data = {
name: "Node.js",
version: "18.0"
};
const jsonData = JSON.stringify(data); // Convert to JSON
console.log(JSON.parse(jsonData)); // Parse JSON back to object
15. Handling Promises
const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => resolve('Data Loaded'), 2000);
});
};
fetchData()
.then((data) => console.log(data))
.catch((err) => console.error(err));
16. Asynchronous/Await
async function loadData() {
const data = await fetchData();
console.log(data);
}
loadData();
17. Environment Variables
PORT=3000
require('dotenv').config();
console.log(process.env.PORT);
18. Useful Node.js Commands
node app.js # Run app
nodemon app.js # Auto-reload app (install nodemon globally)
npm start # Run start script
npm run dev # Run dev script
npm list # List installed packages
19. Error Handling
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});
20. Deployment (PM2 Process Manager)
npm install pm2 -g
pm2 start app.js
pm2 list
pm2 stop app
pm2 logs