- Node.js ফাংশন কন আন মডেল ওরিয়েন্টাডো একটি ইভেন্টস y E/S no bloqueante ideal para concurrencia.
- স্থাপত্য মডুলার: সার্ভিডর, রাউটার এবং হ্যান্ডলারগুলি এস্কলার এবং ম্যান্টেনারের সুবিধা।
- এক্সপ্রেস acelera la creación de apps web con rutas, vistas y Middleware.
- Trabaja con npm y módulos nativos para cubrir archivos, red, rutas y sistema.
আপনি Node.js এর সাথে যোগাযোগ করতে পারেন, aquí tienes una guía pensada para empezar con buen pie: iremos de lo más básico a un flujo de trabajo real, con ejemplos rácticos y explicaciones claras. Te acompañaré desde el mítico Hola Mundo hasta levantar una app web con Express, pasando por módulos del sistema, npm y el enfoque asíncrono que hace tan especial al ecosistema de Node.
ওরিয়েন্টার্টের সাথে আরও ভালো প্রয়োজনীয় পূর্ববর্তী, কনফিগারেশন এবং ভিজ্যুয়াল স্টুডিও কোড এবং প্রাথমিক প্রকল্পগুলি, verás cómo organizar un servidor HTTP, enrutar peticiones, manejar controladores, trabajar con datos POST sin bloquear el hilo y entender la filosofía ঘটনা-চালিত। Todo con un lenguaje cercano, sin rodeos, y con el toque necesario para que no te pierdas.
প্রয়োজনীয় পূর্ববর্তী এবং Node.js এর জন্য প্রয়োজনীয়
জাভাস্ক্রিপ্টের মৌলিক ভিত্তির প্রয়োজন (tipos, variables, funciones, objetos) y ganas de probar cosas con la consola. Node.js es un entorno de ejecución de JavaScript fuera del navegador, basado en V8, con una librería estándar potente y un modelo de ejecución dirigido por eventos y no bloqueante. Esto le permite gestionar muchas conexiones concurrentes sin crear un hilo por cada petición.
কন নোড তৈরি করা সম্ভব servidores web, APIs REST, herramientas de línea de comandos, apps en tiempo real (চ্যাট, বিজ্ঞপ্তি), ইন্টিগ্রেশন কন বেস ডি ডেটাস এবং হ্যাস্টা প্রজেক্টস আইওটি। সু ফোর্টালেজা está en el manejo de E/S concurrente, lo que lo hace ideal para tráfico alto y experiencias interactivas.
ডাউনলোড এবং ইনস্টলেশন
ডাউনলোড করুন Node.js desde la web official en nodejs.org আপনার সিস্টেম অপারেটিভের জন্য ইনস্টল করুন। উইন্ডোজ, ম্যাকওএস বা লিনাক্স টেন্ডার এবং প্যাকেটেস অ্যাডুকুয়াডো ইনস্টল করে। Tras la instalación, confirma en terminal con: node -v y npm -v. npm es el gestor de paquetes de Node y te permitirá instalar librerías de Terceros de forma sencilla.
আপনার প্রাথমিক যোগাযোগ: Hola Mundo কন VS কোড
ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করলে, puedes abrir la carpeta del proyecto y lanzar el terminal integrado con total comodidad. ক্রিয়া উনা কার্পেটা ডি ট্র্যাবাজো ই এন্ট্রা এন এলা: mkdir HelloNode && cd HelloNode.
Ahora abre esa carpeta en VS Code con কোড. নামক একটি ফাইল তৈরি করুন app.js ই আলগো সেনসিলো প্যারা অ্যারানকার পরিচয় করিয়ে দিন: কনসোলার পক্ষ থেকে একটি বার্তা.
var msg = 'Hello World';
console.log(msg);
প্যারা ইজেকিউটার্লো, ভিএস কোডে একটি টার্মিনাল ইন্টিগ্রেড (Ver > টার্মিনাল, o atajo Ctrl+`), y lanza node app.js. Verás el clásico আউটপুট "হ্যালো ওয়ার্ল্ড" en la consola; sí, sencillo, pero confirma que todo va bien.
একটি সার্ভারের জন্য: একটি HTTP সার্ভার ছোট
নোড trae un módulo nativo llamado 'http' con el que puedes crear un servidor en pocas lineas. El corazón es http.createServer, que recibe una función callback que se ejecuta cada vez que llega una petición.
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('Hola Mundo');
response.end();
}).listen(8888);
আরানকালো কন node server.js এবং পরিদর্শন করুন http://localhost:8888/. La magia de Node está en su modelo orientado a eventos: pasas una función y el runtime la “llama de vuelta” (কলব্যাক) cuando sucede el evento (una petición entrante)।
Entendiendo কলব্যাক, asincronía y flujo de ejecución
En JavaScript las funciones son ciudadanos de primera: se pueden pasar como argumentos, devolver y almacenar en variables. Este patrón encaja con el bucle de eventos de Node: tu código registra funciones que se ejecutan cuando ocurren sucesos (por ejemplo, llega una petición HTTP)।
এর মধ্যে পার্থক্য বোঝা অত্যন্ত গুরুত্বপূর্ণ operaciones bloqueantes y no bloqueantes. Si algo que ocupa la CPU durante segundos (por ejemplo, un bucle de espera), el proceso entero se detiene y todas las peticiones sufren এর সাথে পরিচয় করিয়ে দেয়। এন নোড, trabaja siempre que puedas con E/S asíncrona y কলব্যাক বা promesas para evitar bloquear el hilo.
ডিজাইন মডুলার: servidor, রাউটার এবং manejadores
পৃথক দায়িত্ব te ayudará a escalar el proyecto: un módulo para el servidor HTTP, otro para el enrutador y otros para los controladores (অনুরোধ হ্যান্ডলার)। Puedes exponer funciones con exports y requerir modulos locales con require('./miModulo').
ইউনা ইস্ট্রাকচার টিপিকা পডরিয়া সার: index.js প্রবেশের বিন্দু হিসেবে, server.js HTTP সার্ভারের সাথে, রাউটার.জেএস para decidir a qué función mandar cada ruta y requestHandlers.js সম্পর্কে con la logica de cada endpoint. Esta organización mantiene el código legible y facil de probar.
Extrayendo la ruta y enrutando
ইউআরএলে অনুরোধ করার জন্য অনুরোধ করা হয়েছে। এল মডেলো ন্যাটিভো url অনুমতি অতিরিক্ত এল পথের নাম y, si hace falta, la query. Con eso, el রাউটার podrá decidir qué controlador ejecutar.
var url = require('url');
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
// route(pathname) ...
}
রাউটার রেসিপি এল রুট এবং ফাংশন মানচিত্র (un objeto donde cada clave es una ruta, y el valor, el handler), junto con el pathname, y comprueba si hay una función asociada. Si existe, la ejecuta; si no, devuelve un 404.
Haciendo que el handler responsea (el patrón correcto)
অভ্যাসগতভাবে ভালো লাগা es hacer que el controlador retorne un string y que el servidor lo escriba. Pero esto falla cuando el handler necesita hacer algo asíncrono (como leer de disco o ejecutar un comando)। কার্যকরী সমাধান সমাধান বস্তুর প্রতিক্রিয়া ইনজেকশন করুন hasta el handler y que el propio হ্যান্ডলার escriba la respuesta cuando la tenga (por ejemplo, dentro del callback de una función asíncrona)।
// router.js
function route(handle, pathname, response) {
if (typeof handle[pathname] === 'function') {
handle[pathname](response);
} else {
response.writeHead(404, {'Content-Type': 'text/html'});
response.write('404 No Encontrado');
response.end();
}
}
এই পদ্ধতির অনুমতি দেয় উত্তরদাতা justo cuando la E/S asíncrona উপসংহারে, sin bloquear el proceso ni forzar a devolver datos antes de tiempo.
এক্সপ্রেস: মিনিটে ওয়েবে অ্যাপ তৈরি করুন
Node.js এর জন্য ফ্রেমওয়ার্ক মিনিমালিস্ট প্রকাশ করুন que facilita gestionar rutas, vistas, Middleware y utilidades HTTP. Con su generador puedes crear la estructura de un proyecto en segundos, con carpetas para rutas, vistas y recursos estáticos.
- আপনার প্রকল্পগুলির জন্য একটি ফোল্ডার তৈরি করুন:
mkdir ExpressProjects && cd ExpressProjects. - উদ্ভিদের বংশ:
npx express-generator HelloWorld --view=pugcreat la app con motor de vistas Pug. - VS কোডে যোগ করুন বিরূদ্ধে
code .কাঠামো পর্যালোচনা: am (আরানক), প্রকাশ্য (জেএস/সিএসএস/ছবি), যাত্রাপথ (রুট কন্ট্রোলার), মতামত (প্ল্যান্টিলাস), app.js (কনফিগ), package.json (স্ক্রিপ্ট এবং নির্ভরতা)। - নির্ভরতা ইনস্টল করুন বিরূদ্ধে
npm installপ্রকল্পের কার্পেটে। - অ্যাপটি শুরু করুন. উদাহরণ, কোন অপসারণ:
npx cross-env DEBUG=HelloWorld:* npm start. - প্রর্দশিত http://localhost:3000. প্রুয়েবা একটি ক্যাম্বিয়ার লা ভিস্তা প্রিন্সিপাল: এন
views/index.pug, sustituye el título porh1 "Hello World!"এবং রিচার্জ করুন।
এক্সপ্রেস ইনকর্পোরা lo necesario para GET, POST, PUT এবং DELETE নির্বাচন করুন, usar মিডলওয়্যার, সার্ভার estáticos, renderizar vistas y estructurar una app de varias páginas con menos fricción.
npm y modulos incorporados de Node
npm es el gestor de paquetes de Node y te permite installar librerías de terceros. উদাহরণের জন্য, অনাদির এক্সপ্রেসের জন্য: npm install express। পরে require('express') y utilizarlo en tu código. এস্টা নমনীয়তা es clave para crecer con tu proyecto.
এছাড়াও, নোড অন্তর্ভুক্ত নেটিভ মডিউল প্যারা টেরাস কমিউনস: fs (আর্কাইভোস), http/https (চাকর), path (রুটাস), os (সিস্টেমের তথ্য), url (URL পার্সিং) y muchos más. Puedes importarlos con require() কিছু ইনস্টল না করে।
Probando un modulo nativo: información del sistema
El modulo 'os' ofrece datos del sistema operativo. Abre la consola y entra en el REPL de Node con node para probar funciones rápidamente sin crear archivos.
- লেখা
os.platform()প্যারা সাবের লা প্লাটাফরমা (win32, linux, ডারউইন…)। সক্রিয়ভাবে নিশ্চিত করা হচ্ছে সরাসরি। - বিরূদ্ধে
os.arch()obtendrás la arquitectura (x64, arm64…)। বাইনারি বা বিল্ডের জন্য ব্যবহার. - আমেরিকা
os.cpus()para ver los núcleos disponibles. ভারসাম্যপূর্ণ গাড়ির জন্য আদর্শ con clústeres o procesos hijos. - আরইপিএল কনের সাল দেল
.exito Ctrl+C দুইবার চাপুন। দ্রুত এবং অবশিষ্টাংশ ছাড়া.
Biblioteca de Terceros útil en el día a día
এল ইকোসিস্টেমা এনপিএম বিশাল. Algunas utilidades জনপ্রিয়: তীব্র (tratamiento de imagenes y compresión), PDFKit (পিডিএফ জেনারেশন), validator.js (ক্যাডেনাসের বৈধতা), ইমেজমিন y UglifyJS (ক্ষুদ্রাকরণ), স্প্রাইটস্মিথ (প্রেত), উইনস্টন (লগিং) y কমান্ডার.জেএস (CLI)। npm install <paquete> যখন আপনি তাদের প্রয়োজন.
Cómo ejecutar código Node.js desde archivo
Guarda tu código en un archivo, por ejemplo app.js, y ejecútalo con node app.js en la টার্মিনাল। Esto inicia tu programa y verás los resultados en consola o, si levantas un servidor, en tu navegador.
Del REPL a la aplicacion real: flujo completo
Probar en el REPL es perfecto para funciones pequeñas, pero en cuanto tu código crece, te conviene pasar a archivos, organizar módulos y añadir scripts de npm. De esta forma podrás automatizar tareas con npm রান y documentar los comandos de inicio en package.json.
Manejando datos POST sin bloquear
Cuando un usuario envía un formulario, el cuerpo de la petición puede llegar en varios trozos. En el servidor (কলব্যাক ডি createServer) añade শ্রোতা data y end প্যারা ir acumulando el contenido y procesarlo al ফাইনাল। Indica también la codificación, por ejemplo UTF-8, para manipularlo correctamente.
request.setEncoding('utf8');
var postBody = '';
request.addListener('data', function(chunk) {
postBody += chunk;
});
request.addListener('end', function() {
// route(handle, pathname, response, postBody)
});
ব্যক্তিগত ক্যাম্পাসের অতিরিক্ত প্রয়োজন, ইউএসএ এল মডুলো 'কোয়েরিস্ট্রিং' প্যারা parsear el cuerpo cuando llega como application/x-www-form-urlencoded: querystring.parse(postBody).textউদাহরণস্বরূপ,
অপারেসিওনেস কস্টোসাস ওয়াই এক্সিক নো ব্লক
প্যারা ইজেকিউটার কমান্ডো ডেল সিস্টেম sin detener el servidor, utiliza child_process.exec y কলব্যাক এবং উত্তর. Puedes añadir opciones como timeout o maxBuffer প্যারা কন্ট্রোলার কমান্ডো পেসাডোস। El patrón es siempre el mismo: নাদা দে ব্লকিয়ার, y প্রতিক্রিয়া cuando haya datos.
var exec = require('child_process').exec;
function handler(response) {
exec('ls -lah', function(error, stdout, stderr) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write(stdout);
response.end();
});
}
Si cambias el comando por algo más exigente, el resto de rutas seguirá responseiendo con normalidad siempre que no hagas trabajo sincrónico costoso en el hilo principal.
সুবিদাস ডি ফিচেরোস: enfoque y herramientas
প্যারা মানেজার মাল্টিপার্টে আপলোড (imágenes u otros archivos) lo más ráctico es recurrir a un paquete especializado. Modulos como বিস্ময়কর বিশ্লেষণ সূত্র সহজতর করা multipart/form-data, acceder a los archivos temporales y moverlos a su destino. লা আইডিয়া এস লা মিসমা: কলব্যাক/প্রোমেসা y trabajar de forma segura con streams.
Aunque la implementación completa escapa a los primeros pasos, lo importante es que integres el upload en tu flujo: সার্ভার সূত্রটি কী, রাউটার que dirige a la ruta de subida, y ক্রীড়াশিক্ষক que valida, guarda y responsee con el resultado (por ejemplo, mostrando la imagen)।
Estructura de vistas y contenido dinámico
এক্সপ্রেসের জন্য আপনি পগ ইউ ওট্রো মোটর ব্যবহার করতে পারেন, el controlador pasa datos a la vista y esta los renderiza. Para un formulario sencillo con un textarea enviado por POST y una ruta que lo muestra, basta con dos handlers: uno que sirve el formulario y otro que procesa y devuelve el contenido প্রাপ্ত
ভালো সাংগঠনিক অনুশীলন
এভিটা আর্কাইভোস মনোলিটিকোস. বিভাজন en módulos, nombra funciones con verbos que expresen acciones (por ejemplo, শুরু, উপরে যান, তালিকা), y desacopla con inyección de dependencias cuando tenga Sentido (pasando funciones o mapas de rutas al servidor y al রাউটার)। Mantener las capas ligeras te permitirá crecer sin dolores.
Qué puedes construir con Node.js
সু মডেল ইভেন্ট-চালিত এবং নন-ব্লকিং lo hace especialmente bueno para: servidores web, APIs REST, apps en tiempo real (chat, dashboards), bots y CLIs, integraciones con bases de Datos, colas de trabajo, y control de hardware. La facilidad para manejar websockets y streaming lo convierte en una elección natural para experiencias interactivas.
- ওয়েব পরিষেবা এবং সাইট SSR-এর সাথে।
- REST এপিআই সর্বোত্তম ট্রাফিকের জন্য প্রস্তুতি।
- আসল সময় con সকেট প্যারা চ্যাট, বিজ্ঞপ্তি বা খেলা.
- কমান্ড লাইন সরঞ্জাম কাজ স্বয়ংক্রিয় করতে।
- প্রসেসস কন ফিচারস ওয়াই বেস ডি ডেটাস, কোলাস এবং পাইপলাইন।
- আইওটি এবং হার্ডওয়্যার বিশেষায়িত গ্রন্থাগারের সাথে।
হেরামিয়েন্টাস ডি aprendizaje এবং practica
বিদ্যমান entornos interactivos que muestran código y salida lado a lado, ideales para entender ejemplos rápidos. Aun así, podrás progresar sin crear cuentas: documentarte, copiar ejemplos y ejecutar en local con tu terminal es más que suficiente al principio.
ভিজ্যুয়াল স্টুডিও কোড: প্রোডাক্টিভিড সিন সালির ডেল এডিটর
টার্মিনাল ইন্টিগ্রেডো, এল ডিপুরাডর এবং লাস এক্সটেনশন de VS কোড hacen que trabajar con Node sea muy cómodo. Desde “Ver > Terminal” puedes abrir shells, cambiar el predeterminado y ejecutar node o npm run পাপ পরিত্যাগ এল সম্পাদক. অ্যাডেমাস, launch.json কনফিগার করুন te permitirá depurar paso a paso.
Apuntes de Version y estabilidad
Muchas guías clásicas se probaron con versiones antiguas de Node, pero los conceptos se mantienen vigentes: callbacks, modulos nativos, asincronía, enrutado y separación de responsabilidades. Hoy trabajarás con versiones actuales, más rápidas y seguras, y con un ecosistema npm aún más rico.
ডাউনলোড করুন এবং recursos addicionales
ডকুমেন্টেশন, পিডিএফ এবং টিউটোরিয়ালের জন্য প্রশস্ত স্টুডিও. Revisa siempre la web oficial de Node para novedades y descarga, e identifica fuentes didácticas que incluyan প্রশিক্ষণ, কুইজ এবং রেটোস para afianzar conocimientos a medida que avances.
Si buscas উপাদান complementario, encontrarás guías introductorias y referencias prácticas con ejemplos, así como enlaces de descarga cuando sea necesario. তুমি বাস্তবে মনোযোগী হও: leer está bien; ejecutar, romper cosas y arreglarlas, mejor.
সম্পূর্ণ উদাহরণ: রাউটার এবং হ্যান্ডলারের সাথে মিনি অ্যাপ
জান্টান্ডো পাইজাস। একটি প্রকল্প কল্পনা করুন index.js কে আরানকা এল সার্ভিডোর, server.js HTTP এবং POST পার্সিং এর সাথে, রাউটার.জেএস que সিদ্ধান্ত qué función ejecutar y requestHandlers.js সম্পর্কে con dos rutas: una que muestra un formulario y otra que enseña el texto enviado.
// index.js
var server = require('./server');
var router = require('./router');
var handlers = require('./requestHandlers');
var handle = {};
handle['/'] = handlers.iniciar;
handle['/iniciar'] = handlers.iniciar;
handle['/subir'] = handlers.subir;
server.iniciar(router.route, handle);
// server.js
var http = require('http');
var url = require('url');
function iniciar(route, handle) {
function onRequest(request, response) {
var postData = '';
var pathname = url.parse(request.url).pathname;
request.setEncoding('utf8');
request.addListener('data', function(chunk) { postData += chunk; });
request.addListener('end', function() {
route(handle, pathname, response, postData);
});
}
http.createServer(onRequest).listen(8888);
}
exports.iniciar = iniciar;
// router.js
function route(handle, pathname, response, postData) {
if (typeof handle[pathname] === 'function') {
handle[pathname](response, postData);
} else {
response.writeHead(404, {'Content-Type': 'text/html'});
response.end('404 No Encontrado');
}
}
exports.route = route;
// requestHandlers.js
var querystring = require('querystring');
function iniciar(response) {
var body = '<html>'+
'<head><meta charset=\'UTF-8\' /></head>'+
'<body>'+
'<form action=\'/subir\' method=\'post\'>'+
'<textarea name=\'text\' rows=\'10\' cols=\'40\'></textarea>'+
'<input type=\'submit\' value=\'Enviar\' />'+
'</form>'+
'</body></html>';
response.writeHead(200, {'Content-Type': 'text/html'});
response.end(body);
}
function subir(response, postData) {
var text = querystring.parse(postData).text || '';
response.writeHead(200, {'Content-Type': 'text/html'});
response.end('Tu enviaste: ' + text);
}
exports.iniciar = iniciar;
exports.subir = subir;
কোন este esqueleto mínimo ya tienes un servidor functionional y no bloqueante, con rutas y controladores separados, preparado para crecer hacia vistas, uploads o integración con bases de datos.
La clave de Node está en pensar en “acciones”: pasar funciones, inyectar dependencias cuando convenga y mantener pequeños los bloques de responsabilidad. Así, tu aplicación será más facil de mantener y adaptar conforme aumente su complejidad.
Todo lo visto te da una base sólida: desde instalar Node y ejecutar tu primer script, pasando por VS Code, একটি servidor HTTP ন্যাটিভো, enrutado propio, Express, npm, modulos nativos, REPL, asincronía sin bloqueos y manejo de formularios POST. Con ráctica y pequeñas iteraciones, podrás construir proyectos cada vez más completos sin perder claridad en el código.