Node.js va brauzer farqlari
Asosiy farqlar
Node.js va brauzerlar ikkalasi ham JavaScript-ni ishlaydi, lekin ular turli muhit va imkoniyatlarga ega.
Node.js server tomonida ishlab chiqish uchun mo‘ljallangan, brauzerlar esa mijoz tomonidagi ilovalar uchun.
- API’lar: Node.js fayl tizimi (fs), tarmoq va OS uchun API’larni taqdim etadi, ammo brauzerlar bunday qilmaydi.
Brauzerlar DOM, fetch va UI API-larini Node.js da mavjud emas. - Global obyektlar: Node.js
globaldan foydalanadi; brauzerlarwindowyokiselfdan foydalanadilar. - Modullar: Node.js CommonJS (
require) va ES modullaridan (import) foydalanadi; brauzerlar ES modullaridan yoki oddiy<script>teglardan foydalanadi. - Xavfsizlik: Brauzerlar kirish imkoniyati cheklangan sinov muhitida ishlaydi; Node.js fayl tizimi (fs) va tarmoqqa to‘liq kirish huquqiga ega.
- Voqealar sikli: Ikkala muhit ham hodisalar siklidan foydalanadi, lekin Node.js taymerlar, jarayonlar va boshqalar uchun qo‘shimcha API-larga ega.
- Muhit o‘zgaruvchilari: Node.js muhit o‘zgaruvchilariga kirishi mumkin (
process.env); brauzerlar qila olmaydi. - Paketlarni boshqarish: Node.js npm/yarn dan foydalanadi; brauzerlar CDN yoki bundlerlardan foydalanadi.
Ushbu sahifa har bir muhit uchun misollar bilan asosiy farqlarni tushuntiradi.
Misollar
Global obyektlar
// Node.js
global.mylet = 42;
console.log(global.mylet); // 42
// Browser
window.mylet = 42;
console.log(window.mylet); // 42
Faylga kirish
// Node.js
const fs = require('fs');
fs.readFile('myfile.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
// Browser
// Not allowed for security reasons
HTTP so‘rovlari
// Node.js
const https = require('https');
https.get('https://example.com', res => {
let data = '';
res.on('data', chunk => data += chunk);
res.on('end', () => console.log(data));
});
// Browser
fetch('https://example.com')
.then(response => response.text())
.then(console.log);
Modullar
// Node.js (CommonJS)
const fs = require('fs');
// Node.js & Browser (ES Modules)
// import fs from 'fs'; // Node.js only, not browser
// import _ from 'https://cdn.jsdelivr.net/npm/lodash-es/lodash.js'; // Browser
Taqqoslash jadvali
| Feature | Node.js | Browser |
|---|---|---|
| File System Access | Ha | Yo‘q |
| Networking (TCP/UDP) | Ha | Yo‘q |
| DOM Access | Yo‘q | Ha |
| Global Object | global | window/self |
| Modules | CommonJS/ESM | ESM/Scripts |
| Environment Variables | Yes (process.env) | Yo‘q |
| Security | Full OS access | Sandboxed |
| Package Management | npm/yarn | CDN/Bundler |
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
