🎤 टॉप 81 Interview Questions
ये सबसे common Java interview questions हैं — tap करके answer खोलो।
Chrome ke V8 JavaScript engine par bani, ek JavaScript RUNTIME ENVIRONMENT hai — isse JavaScript, browser ke bahar, SERVER par bhi, run ho sakti hai.
NAHI — Node.js, ek RUNTIME hai. Express.js jaise FRAMEWORKS, Node.js ke UPAR banaye jaate hain.
MAIN JavaScript code, EK, thread par run hota hai — SIMPLICITY ke liye, aur race conditions AVOID karne ke liye. Heavy I/O, BACKGROUND mein, libuv ke thread pool mein OFFLOAD hota hai.
Ek C LIBRARY, jo Node.js ke event loop aur thread pool, DONO ko implement karti hai — cross-platform, non-blocking I/O ke liye.
Ek continuously RUNNING loop, jo pending callbacks CHECK karta hai aur READY hone par unhe EXECUTE karta hai — non-blocking I/O ka CORE mechanism.
Microtasks (Promises), HAR phase ke baad, IMMEDIATELY process hote hain. Macrotasks (setTimeout), agli phase mein process hote hain — isliye microtasks, PEHLE run hote hain.
Ye, Promise microtasks se BHI PEHLE run hota hai — HIGHEST priority microtask queue hai. Overuse karne se, I/O starve ho sakta hai.
Same JavaScript syntax, LEKIN alag global APIs — browser mein window/document, Node.js mein process/require/fs jaise SERVER-SPECIFIC features hain.
CommonJS (require/module.exports), Node.js ka TRADITIONAL system hai. ES Modules (import/export), MODERN standard hai — package.json mein "type": "module" se enable hota hai.
Files aur directories ke saath INTERACT karne ke liye, Node.js ka BUILT-IN core module hai — readFile, writeFile, mkdir jaise methods deta hai.
Sync methods, MAIN thread ko BLOCK karte hain — jab tak file read complete NAHI hoti, koi bhi ANYA request process nahi ho sakti.
path.join(), OS-SPECIFIC separator (/ ya \) AUTOMATICALLY handle karta hai — cross-platform compatibility ke liye zaroori hai.
__dirname, HAMESHA current FILE ki location hai. process.cwd(), user ne JAHA se command run ki, WOH directory hai.
CPU cores ki count, PATA karne ke liye — clustering mein, HAR core ke liye ek worker process SPAWN karne ke liye common use-case hai.
Node.js ke event-driven architecture ka FOUNDATION hai — .on() se events LISTEN, .emit() se TRIGGER kiye jaate hain.
Agar "error" event ke liye KOI listener nahi hai, aur woh emit hota hai, Node.js process CRASH ho jaata hai.
once(), ek listener ADD karta hai jo SIRF ek baar trigger hota hai, phir AUTOMATICALLY remove ho jaata hai. on(), HAR baar trigger hota hai.
Project ka MANIFEST FILE hai — name, version, dependencies, devDependencies, aur scripts DEFINE karta hai.
dependencies, PRODUCTION mein zaroori packages (jaise express). devDependencies, sirf DEVELOPMENT ke liye zaroori packages (jaise nodemon, jest).
Exact, INSTALLED versions LOCK karta hai — team ke SAARE members ko, same dependency versions milte hain, reproducible builds ke liye.
^4.18.2, MATLAB 4.x.x ke andar (minor+patch updates allowed). ~4.18.2, matlab sirf 4.18.x (patch updates only).
MAJOR = breaking changes. MINOR = naye, backward-compatible features. PATCH = backward-compatible bug fixes.
npm, packages ko INSTALL karta hai. npx, packages ko install kiye BINA, temporarily download karke, DIRECTLY execute karta hai.
npm run <script-name> se — start aur test SPECIAL hain, inhe npm start/npm test se, bina "run" ke, DIRECTLY run kiya ja sakta hai.
npm install, package-lock.json ko UPDATE bhi kar sakta hai. npm ci, package-lock.json ke EXACT versions install karta hai, FASTER aur CI/CD ke liye preferred hai.
Node.js ka MOST popular web framework hai — routing, middleware, request/response handling ko simple, MINIMAL API ke saath provide karta hai.
(req, res, next), signature wale FUNCTIONS hain — next() call karke, pipeline ke AGLE middleware/handler ko control PASS kiya jaata hai.
Request "HANG" ho jaati hai — client ko KABHI response nahi milta, kyunki pipeline aage nahi badhti.
req.params, route parameters (:id) se milte hain. req.query, query string parameters (?key=val) se milte hain.
Multiple routes ko MODULAR files mein organize karne deta hai — badi applications mein, har resource ka apna alag router file hota hai.
4 ARGUMENTS (err, req, res, next) ke through — Express, isse automatically ek error handler ki tarah TREAT karta hai.
try-catch mein wrap karke, next(err) se PASS kiya jaata hai — Express 4 mein, ye MANUAL karna zaroori hai.
Incoming JSON request bodies ko PARSE karta hai — iske bina, req.body, undefined rahega.
Specific routes (jaise /users/new), generic dynamic routes (/users/:id) se PEHLE define karne chahiye — warna "new" ko ID ki tarah treat kiya jaayega.
Ek function hai jo, EK dusre function ko argument ke roop mein pass kiya jaata hai, aur baad mein invoke kiya jaata hai.
Callback ka FIRST argument, hamesha error (ya null) hota hai — dusra argument, result data hota hai.
pending (abhi decide nahi hua), fulfilled (successfully resolve hua), aur rejected (fail ho gaya).
Multiple promises ko PARALLEL mein run karke, sabke resolve hone ka wait karta hai — agar ek bhi reject hoti hai, poora Promise.all() reject ho jaata hai.
Promise.all(), ek reject hone par turant reject ho jaata hai. Promise.allSettled(), har promise ka status (fulfilled/rejected) SEPARATELY return karta hai.
Hamesha ek Promise return karta hai — chahe function ke andar explicitly Promise return kiya ho ya nahi.
Sirf async functions ke andar (ya, modern Node.js mein, ES module ke top level par) — normal functions mein await, syntax error deta hai.
Agar operations ek dusre par DEPEND nahi karti, to sequential await, unnecessarily WAIT karta hai — Promise.all() se parallel mein run karna FASTER hai.
TRUE parallelism ke liye — CPU-heavy tasks (jaise image processing) ko, main thread ko block kiye bina, alag thread mein run karne ke liye.
Large data ko, SMALL chunks mein process karne dete hain, bina poore data ko memory mein load kiye.
Readable, Writable, Duplex (dono), aur Transform (data ko process karte waqt modify karta hai).
Poori file ko MEMORY mein load karta hai — 2GB ki file, "out of memory" error de sakti hai. Streams, memory-efficient solution hain.
Ek readable stream ko, DIRECTLY writable stream se connect karta hai — data, automatically flow karta hai, backpressure bhi automatically handle hota hai.
Errors ko properly PROPAGATE karta hai, aur saare streams ko automatically cleanup/destroy kar deta hai agar koi ek fail ho jaaye.
Raw BINARY data ka, ek fixed-size chunk hai — streams aur file operations mein, data aksar buffer ke roop mein aata hai.
Buffer.alloc(), zero-filled buffer banata hai (SAFE). Buffer.allocUnsafe(), faster hai lekin memory mein purana data rakh sakta hai.
Ek file/directory mein changes ko MONITOR karta hai — jaise hi kuch change hota hai, ek event fire hota hai (jaise nodemon isse use karta hai).
MongoDB, ek NoSQL document database hai — data, JSON-like documents mein store hota hai, rigid schema ki zaroorat nahi.
Ek ODM (Object Data Modeling) library hai — schemas define karke, MongoDB ke upar structure aur validation add karta hai.
String concatenation se SQL queries banane se, SQL injection vulnerability ho sakti hai — parameterized queries ($1, ?) isse safe rakhti hain.
Reusable connections ka ek set MAINTAIN karta hai — har query ke liye naya connection banana, expensive operation hai.
ORM (Prisma, Sequelize), database tables ko objects/classes ki tarah TREAT karta hai. Query builder (Knex), chainable JavaScript methods se SQL build karta hai.
Ek list ke HAR item ke liye, ek separate query run ho jaati hai — ek hi JOIN/IN query se sab mil sakta hai, iske bajaye.
Multiple queries ko ek "ALL-OR-NOTHING" unit mein group karte hain — agar koi ek query fail hoti hai, poori transaction ROLLBACK ho jaati hai.
JSON Web Token, ek self-contained token hai — HEADER.PAYLOAD.SIGNATURE format mein, user information aur expiry, token ke andar hi encoded hoti hai.
NAHI — sirf ENCODED hota hai, encrypted nahi. Koi bhi jwt.io par paste karke payload padh sakta hai — sensitive data mat daalo.
Server ko session database mein kuch STORE karne ki zaroorat nahi — saari information, token ke andar hi hoti hai, signature se verify hoti hai.
Hashing, ONE-WAY hai (hash se original password recover nahi ho sakta). Encryption, REVERSIBLE hai — passwords ke liye, one-way hashing zyaada safe hai.
Har password mein, ek RANDOM salt add karta hai hash karne se pehle — same password, do alag users ke liye, DIFFERENT hashes produce karta hai.
Ek BROWSER security mechanism hai — different origin (domain/port) se aane wali requests, default mein BLOCK ki jaati hain.
CORS, ek browser-only security feature hai — enforcement, browser ke JavaScript engine mein hota hai, server mein nahi.
.env mein, sensitive secrets (DB credentials, API keys) hote hain — accidentally git mein commit hone se, secrets publicly exposed ho sakte hain.
Node.js ko multiple CPU cores use karne deta hai — default mein, ek Node.js process, sirf ek core use karta hai.
Har worker, apna ALAG memory space rakhta hai — ek worker mein ek variable update karne se, dusre workers affect nahi hote. Shared state ke liye, Redis jaisa external store zaroori hai.
child_process, SEPARATE OS processes spawn karta hai (heavier). worker_threads, lightweight hain aur memory share kar sakte hain.
spawn(), STREAMING output deta hai — large data ke liye ideal. exec(), poora output BUFFER mein leta hai — chhote commands ke liye.
"Command injection" vulnerability ho sakti hai — spawn(), arguments ko array ke roop mein leta hai, jo safer hai.
Ek process manager hai — app ko background mein run karta hai, crash hone par automatically restart karta hai, aur logs manage karta hai.
"It works on my machine" problem — app ko, saari dependencies ke saath, ek container mein package karta hai, jo har environment mein SAME tareeke se run hota hai.
SIGTERM signal receive hone par, server naye connections accept karna band karta hai, aur existing requests ko complete hone ka time deta hai, exit karne se pehle.
Memory diagnostics — rss, heapTotal, heapUsed, external — memory leaks detect karne ke liye quick check ke liye useful hai.
High lag ka matlab hai ki, synchronous code (jaise heavy computation) main thread ko block kar raha hai.
Load balancers aur orchestration tools (Kubernetes), isse verify karte hain ki app running hai aur traffic handle karne ke liye ready hai.
Dikhata hai ki, kaun si dependencies ki, newer versions available hain — npm update se, allowed range ke andar, latest version install ho jaata hai.
app.use(), saare HTTP methods ke liye, aur (path specify na karne par) saare routes ke liye middleware register karta hai. app.get(), sirf GET requests ke liye hai.
Environment variables ko — DATABASE_URL, JWT_SECRET jaise secrets, code mein hardcode karne ke bajaye, .env file mein rakhe jaate hain.
Error-first callback-style functions ko, Promise-returning functions mein convert karta hai — legacy callback APIs ko async/await ke saath use karne ke liye.