💡 Common Mistake: Using "window" in Node.js Ever run Node.js code and hit: 👉 ReferenceError: window is not defined ? Here’s why 👇 --- 🌍 Browser ✅ "window" exists ✅ "self" exists ✅ "frames" exists They are part of the Window API --- 🟢 Node.js ❌ No "window" ❌ No "self" ❌ No "frames" Because Node.js = server-side runtime, not a browser. --- ✅ What to Use Instead ✔ "global" ✔ "globalThis" (recommended) console.log(globalThis); --- ✅ Safe Check for Browser Code if (typeof window !== "undefined") { // Browser-only logic } --- 🚀 Takeaway: Know your environment. Browser → Window APIs Node.js → Global APIs --- #NodeJS #JavaScript #Backend #WebDevelopment #globalThis
Node.js vs Browser: Understanding Window API
More Relevant Posts
-
▲ Next.js introduces Native Server Actions. Stop writing API routes just to handle a form submission 👇 For years, submitting a form in React meant creating a separate API endpoint, writing a fetch call on the client, and manually managing loading and error states. A lot of boilerplate for something so simple. ❌ The Old Way: You treated form submission as a client-side problem. It required a dedicated /api/submit route, a fetch() call, and manual state management just to save data. ✅ The Modern Way: Treat server logic as UI. Define an async function with "use server" and pass it directly to your form’s action prop. • Zero API route needed: The function runs on the server automatically. • Secure by default: Sensitive logic never reaches the client bundle. • Works with useFormState: Get progressive enhancement for free! The Shift: Form handling is no longer a “client problem” — it’s a first-class citizen of your component tree. #NextJS #ServerActions #WebDevelopment #React #Frontend #JavaScript #AppRouter #FullStack #CleanCode #NextJSTips #FrontendDeveloper
To view or add a comment, sign in
-
-
⚡ JavaScript’s Promise.all() — Great Power, Hidden Risk Promise.all() is one of the most commonly used async tools in Node.js and TypeScript. But many developers forget one important detail: If one promise fails, everything fails. 🔎 Why this matters When running multiple async operations in parallel: • External API calls • Database queries • File uploads • Microservice requests • Background tasks A single rejection will cause the entire Promise.all() to reject. Even if the other operations succeed. ✅ For a safer alternative when partial results are OK use Promise.allSettled() ⚙️ Runtime support Promise.allSettled() is supported in: ✅ Node.js 12+ ✅ Chrome 76+ ✅ Firefox 71+ ✅ Safari 13+ So it’s safe in basically every modern backend runtime. Small async decisions like this can prevent subtle production failures. Especially in API orchestration, microservices, and NestJS backends. #NodeJS #JavaScript #WebDevelopment #Tech #DesignPatterns #FrontendDevelopment #DeveloperLife #Backend #BackendDeveloper #TypeScript #CodingTips #DeveloperBestPractices
To view or add a comment, sign in
-
-
A simple proxy configuration in the vite.config.js file that avoids CORS error. As you might know, you can run both frontend and backend applications on the same domain and port using proxy configuration. Using a proxy in the development environment solves the CORS Error. If your frontend application (running on http:// localhost:5173) makes API requests to a backend server (running on http:// localhost:3030), the browser enforces CORS policies. Without proper CORS headers, the browser will block such requests. By using a proxy, the frontend makes requests to its own server (http:// localhost:5173), which then forwards them to the backend. This avoids CORS issues because the frontend and the proxy server share the same origin. And as frontend and backend are running on the same domain and port with this configuration, You can easily access cookies sent from the backend on the frontend. 𝗣𝗦: The proxy configuration is only active during development. It does not affect production builds. 𝗘𝘅𝘁𝗿𝗮 𝗧𝗶𝗽: It's always a good practice to start your backend API routes with /api like /api/users, /api/profile, etc. So if you deploy your application on the same server, you can easily differentiate between frontend and backend routes and will not face any issues with configuration. 𝗙𝗼𝗿 𝗺𝗼𝗿𝗲 𝘀𝘂𝗰𝗵 𝘂𝘀𝗲𝗳𝘂𝗹 𝗰𝗼𝗻𝘁𝗲𝗻𝘁, 𝗱𝗼𝗻'𝘁 𝗳𝗼𝗿𝗴𝗲𝘁 𝘁𝗼 𝗳𝗼𝗹𝗹𝗼𝘄 𝗺𝗲. #javascript #reactjs #nodejs #webdevelopment
To view or add a comment, sign in
-
-
## What actually happens when you call an API in React? They call an API… and don’t realize it’s running multiple times. I made the same mistake. At first, I thought: “Just fetch data inside the component and display it.” But React doesn’t work like that. Every time your component re-renders, your API call can run again. And again. And again. That means: • Unnecessary network requests • Slower performance • Confusing bugs The fix? useEffect(). It controls when your API runs — not just how. Here’s the actual flow: Component renders useEffect triggers API call is made Data returns State updates Component re-renders (once, correctly) My biggest realization: React isn’t just about writing code — It’s about understanding the lifecycle behind it. If you ignore that, small mistakes become big problems. #reactjs #javascript #webdevelopment
To view or add a comment, sign in
-
🚀 Why Node.js is So Fast? Let’s Understand the Secret Node.js is an open-source, cross-platform JavaScript runtime environment that allows developers to run JavaScript outside the browser, mainly on the server side. Asynchronous, Non-Blocking I/O High Performance – Powered by V8 engine 🔥 Top Node.js Questions Every Developer Should Know 🚀 1️⃣What is Event Loop in Node.js? 2️⃣ process.nextTick() vs setImmediate()? 3️⃣ What is Non-Blocking I/O? 4️⃣ How does Node.js handle concurrency? 5️⃣ What are Streams and their types? 6️⃣ How does the Node.js architecture work? 7️⃣ What is V8 engine’s role in Node.js? 8️⃣ What is libuv? 9️⃣ How does async/await work internally? 🔟 Callbacks vs Promises vs Async/Await 1)How does Garbage Collection work in Node.js? 2️⃣ How to detect memory leaks? 3️⃣ How to optimize Node.js performance? 4️⃣ What is EventEmitter? 5️⃣ How to avoid blocking the event loop? 6️⃣ Worker Threads vs Cluster Module 7️⃣ require() vs import() 8️⃣ CommonJS vs ES Modules 9️⃣ How does module caching work? How environment variables are managed? #NodeJS #JavaScript #BackendDeveloper #MERNStack #InterviewPreparation #WebDeveloper #Coding #TechJobs #FullStackDeveloper
To view or add a comment, sign in
-
-
⚛️ React Internals — Understanding the RSC Payload & React Flight Protocol When using React Server Components (RSC) in frameworks like Next.js, React doesn't send fully rendered HTML or large JavaScript bundles to the browser. Instead, React sends a special serialized data stream called the RSC Payload. This payload is generated using the React Flight Protocol. What is the React Flight Protocol? The React Flight Protocol is the format React uses to transmit Server Component results from the server to the browser. Instead of sending HTML, React sends structured instructions describing the component tree. Example payload: ["$","div",null,{ "children":[ ["$","h1",null,{"children":"Product Name"}], ["$","$L2c",null,{"id":123,"qty":1}] ] }] Here: • div → root element • h1 → server rendered element • $L2c → client component reference • { id:123, qty:1 } → props passed to the client component #React #ReactJS #NextJS #ReactServerComponents #JavaScript #FrontendDevelopment #WebDevelopment #SoftwareEngineering #ReactDeveloper #FullStackDeveloper #ModernReact #CodingCommunity #DevCommunity #LearnInPublic #TechEducation
To view or add a comment, sign in
-
-
Ever wonder how your modern ES6+ React code actually runs on older browsers? 🤔 It’s not magic—it’s Babel. ⚙️ I recently wrote a deep dive into how this transpiler acts as the backbone of the React ecosystem, ensuring our code stays clean while remaining universally compatible. If you’ve ever used an arrow function or a spread operator, you’re relying on this "secret engine" every single day. 🚀 In my latest blog post, I break down: 🔹 The "Under the Hood" Mechanics – What’s actually happening during transpilation. 🔹 React’s Best Friend – Why Babel is indispensable for modern UI development. 🔹 The Compatibility Bridge – How it translates cutting-edge syntax into something every browser understands. 🌉 Understanding your tools is the first step toward mastering your craft. I'd love to hear your thoughts on the role of transpilers in the comments! #ReactJS #BabelJS #JavaScript #WebDevelopment #CodingLife #SoftwareEngineering #TechBlog 👇 Read the full deep dive here:
To view or add a comment, sign in
-
🚀 What I Learned Today: Node.js Internals • Node.js runs JavaScript on a single main thread • Top-level code executes first before the event loop starts • Import statements load during initialization • Event Loop manages asynchronous operations Event Loop Phases: • Timers → setTimeout() / setInterval() • I/O Polling → file system & network operations • Check → setImmediate() (Node.js specific) • Close Callbacks → cleanup tasks • Node.js uses a libuv worker thread pool (default: 4 threads) • Thread pool size can be changed using process.env.UV_THREADPOOL_SIZE https://lnkd.in/gwFG5WVW thank you Piyush Garg sir Hitesh Choudhary sir Akash Kadlag sir #chaiaurcode #NodeJS #JavaScript #Backend #EventLoop
To view or add a comment, sign in
-
-
🚀 I Finally Understood the Node.js Event Loop And it made Node.js make so much more sense. Most developers use Node.js daily. But very few understand what happens behind the scenes. Here are 3 things I learned today 👇 🔹 1. Node.js Uses libuv libuv powers the event loop and handles async tasks like: • File operations • Network requests • Timers This is why Node.js is non-blocking and scalable. 🔹 2. Before the Event Loop Starts Node.js first: • Initializes the environment • Executes top-level code • Loads modules (require / import) • Registers callbacks Only then does the event loop begin. 🔹 3. Event Loop Phases Once running, Node.js processes tasks in phases: 1️⃣ Timers 2️⃣ I/O callbacks 3️⃣ Polling 4️⃣ setImmediate 5️⃣ Close callbacks Understanding this helps write better async code. Big thanks to Hitesh Choudhary, Piyush Garg, Jay Kadlag for the amazing explanation. #NodeJS #JavaScript #BackendDevelopment #WebDevelopment
To view or add a comment, sign in
-
-
🚨 This small mistake can silently DDOS your own backend This bug appears in many React applications. And it can silently destroy your backend. Example: useEffect(() => { fetch("/api/products") .then(res => res.json()) .then(data => setProducts(data)) }, [products]) Looks normal, right? But this creates a dangerous loop. Here’s what happens: 1️⃣ Component renders 2️⃣ "useEffect" runs 3️⃣ API fetches data 4️⃣ "setProducts()" updates state 5️⃣ Component re-renders 6️⃣ "useEffect" runs again Now the API is called again. And again. And again. Result: ❌ Infinite API calls ❌ Backend overload ❌ Application slowdown The fix is simple. useEffect(() => { fetch("/api/products") .then(res => res.json()) .then(data => setProducts(data)) }, []) Now the effect runs only once when the component mounts. 💡 Small mistakes in "useEffect" dependencies can create huge production issues. Good React engineers don't just write effects. They control when they run. #reactjs #frontend #javascript #webdevelopment #softwareengineering
To view or add a comment, sign in
-
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development