ಸರ್ವರ್-ಸೈಡ್ JavaScript ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ Node.js 21.0 ಲಭ್ಯವಿದೆ

Node.js 21.0 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಲಾಗಿದೆ, ಇದು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ನೆಟ್‌ವರ್ಕ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಚಲಾಯಿಸಲು ವೇದಿಕೆಯಾಗಿದೆ. Node.js 21.0 ಶಾಖೆಯನ್ನು 6 ತಿಂಗಳವರೆಗೆ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. ಮುಂಬರುವ ದಿನಗಳಲ್ಲಿ, Node.js 20 ಶಾಖೆಯ ಸ್ಥಿರೀಕರಣವು ಪೂರ್ಣಗೊಳ್ಳುತ್ತದೆ, ಇದು LTS ಸ್ಥಿತಿಯನ್ನು ಪಡೆಯುತ್ತದೆ ಮತ್ತು ಏಪ್ರಿಲ್ 2026 ರವರೆಗೆ ಬೆಂಬಲಿತವಾಗಿರುತ್ತದೆ. Node.js 18.0 ನ ಹಿಂದಿನ LTS ಶಾಖೆಯ ನಿರ್ವಹಣೆಯು ಸೆಪ್ಟೆಂಬರ್ 2025 ರವರೆಗೆ ಇರುತ್ತದೆ ಮತ್ತು ಕೊನೆಯ LTS ಶಾಖೆಯ ಹಿಂದಿನ ವರ್ಷ 16.0 ಏಪ್ರಿಲ್ 2024 ರವರೆಗೆ ಇರುತ್ತದೆ.

ಮುಖ್ಯ ಸುಧಾರಣೆಗಳು:

  • Fetch API ಅನ್ನು ಸ್ಥಿರವೆಂದು ಘೋಷಿಸಲಾಗಿದೆ, ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಮತ್ತು ಸರ್ವರ್ ಮತ್ತು ಕ್ಲೈಂಟ್ ಬದಿಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಸೂಕ್ತವಾದ ಸಾರ್ವತ್ರಿಕ JavaScript ಕೋಡ್‌ನ ಬರವಣಿಗೆಯನ್ನು ಸರಳೀಕರಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಅನುಷ್ಠಾನವು HTTP/1.1 undici ಕ್ಲೈಂಟ್‌ನಿಂದ ಕೋಡ್ ಅನ್ನು ಆಧರಿಸಿದೆ ಮತ್ತು ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ ಒದಗಿಸಲಾದ ಒಂದೇ ರೀತಿಯ API ಗೆ ಸಾಧ್ಯವಾದಷ್ಟು ಹತ್ತಿರದಲ್ಲಿದೆ. API ಫೆಚ್() ವಿಧಾನ ಮತ್ತು ಹೆಡರ್ ಆಬ್ಜೆಕ್ಟ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ವಿನಂತಿ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ, HTTP ಹೆಡರ್‌ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ, ವಿನಂತಿ ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ. const res = ತರಲು ನಿರೀಕ್ಷಿಸಿ ('https://nodejs.org/api/documentation.json'); ವೇಳೆ (res.ok) {const ಡೇಟಾ = ನಿರೀಕ್ಷಿಸಿ res.json(); console.log(ಡೇಟಾ); }
  • ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ಸ್ವೀಕರಿಸಿದ ಡೇಟಾ ಸ್ಟ್ರೀಮ್‌ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುವ ವೆಬ್‌ಸ್ಟ್ರೀಮ್‌ಗಳ API ಗೆ ಬೆಂಬಲವನ್ನು ಸ್ಥಿರಗೊಳಿಸಲಾಗಿದೆ. ಸಂಪೂರ್ಣ ಫೈಲ್ ಡೌನ್‌ಲೋಡ್ ಆಗುವವರೆಗೆ ಕಾಯದೆ, ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಮಾಹಿತಿ ಬಂದಂತೆ ಡೇಟಾದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ನಿಮ್ಮ ಸ್ವಂತ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ಸೇರಿಸಲು API ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. Node.js ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ಆಬ್ಜೆಕ್ಟ್‌ಗಳಲ್ಲಿ ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream ಮತ್ತು DecompressionStream ಸೇರಿವೆ.
  • ವೆಬ್‌ಸಾಕೆಟ್ ಕ್ಲೈಂಟ್‌ನ ಪ್ರಾಯೋಗಿಕ ಅನುಷ್ಠಾನವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಬ್ರೌಸರ್‌ಗಳೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ. WebSocket ಬೆಂಬಲವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು, "--ಪ್ರಾಯೋಗಿಕ-websocket" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಒದಗಿಸಲಾಗಿದೆ.
  • CommonJS (Node.js ಗೆ ನಿರ್ದಿಷ್ಟ) ಬದಲಿಗೆ JavaScript ಮಾಡ್ಯೂಲ್‌ಗಳ ESM (ECMAScript ಮಾಡ್ಯೂಲ್‌ಗಳು, ಬ್ರೌಸರ್‌ಗಳಿಗಾಗಿ ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ) ಡೀಫಾಲ್ಟ್ ಅನುಷ್ಠಾನವನ್ನು ಬಳಸುವುದಕ್ಕಾಗಿ ಪ್ರಾಯೋಗಿಕ ಮೋಡ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ. "--ಇನ್ಪುಟ್-ಟೈಪ್" ಫ್ಲ್ಯಾಗ್ ಮೂಲಕ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಪ್ಯಾಕೇಜ್.json ನಲ್ಲಿನ "ಟೈಪ್" ಫೀಲ್ಡ್ ಮೂಲಕ ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಮಾಡ್ಯೂಲ್‌ಗಳ ಮೇಲೆ ಬದಲಾವಣೆಯು ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ ಅಥವಾ ಫೈಲ್ ವಿಸ್ತರಣೆಯ ಕಾರಣದಿಂದ ಸ್ಪಷ್ಟವಾಗಿದೆ (ಇಎಸ್‌ಎಮ್‌ಗಾಗಿ ಎಂಜೆಎಸ್, .ಸಿಜೆಎಸ್ CommonJS ಗಾಗಿ). ಆದಾಗ್ಯೂ, CommonJS ಎಂದು ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸದ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, “.js” ವಿಸ್ತರಣೆಯನ್ನು ಹೊಂದಿದೆ) ಹೊಸ ಮೋಡ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ ESM ಮಾಡ್ಯೂಲ್‌ಗಳಾಗಿ ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಹೊಸ ಮಾಡ್ಯೂಲ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು, "--ಪ್ರಾಯೋಗಿಕ-ಡೀಫಾಲ್ಟ್-ಟೈಪ್" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ.
  • V8 ಎಂಜಿನ್ ಅನ್ನು ಆವೃತ್ತಿ 11.8 ಗೆ ನವೀಕರಿಸಲಾಗಿದೆ, Chromium 118 ರಲ್ಲಿ ಬಳಸಲಾಗಿದೆ, ಇದು ಈಗ ArrayBuffer.prototype.transfer ವಿಧಾನ, ಗುಂಪು ರಚನೆಗಳ ಸಾಮರ್ಥ್ಯ (groupBy ವಿಧಾನ) ಮತ್ತು ಸ್ಥಿರಾಂಕಗಳನ್ನು ಸಂಸ್ಕರಿಸಲು WebAssembly ಸೂಚನೆಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ (i32.add, i32.sub, i32.mul, i64 .add, i64.sub ಮತ್ತು i64.mul).
  • ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಕರೆಗಳನ್ನು ನೋಂದಾಯಿಸಲು ಮತ್ತು ಪ್ರಾರಂಭಿಸಲು ಗ್ಲೋಬಲ್‌ಪ್ರೀಲೋಡ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗೆ ಬೆಂಬಲವನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ.
  • ಪ್ರತಿ ಬರಹ ಕಾರ್ಯಾಚರಣೆಯ ನಂತರ ಡ್ರೈವ್‌ಗೆ ಡೇಟಾವನ್ನು ಫ್ಲಶ್ ಮಾಡಲು ಒತ್ತಾಯಿಸಲು fs.writeFile ಕಾರ್ಯಕ್ಕೆ "ಫ್ಲಶ್" ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ.
  • URL ಪಾರ್ಸಿಂಗ್, ಪಡೆಯುವ API, ಸ್ಟ್ರೀಮ್‌ಗಳು, ನೋಡ್:fs ಮತ್ತು HTTP ಗೆ ಸಂಬಂಧಿಸಿದ ಕೋಡ್‌ನ ಸುಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆ.
  • ಜಾಗತಿಕ ನ್ಯಾವಿಗೇಟರ್ ವಸ್ತುವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, CPU ಕೋರ್‌ಗಳ ಸಂಖ್ಯೆಯ ಕುರಿತು ಡೇಟಾವನ್ನು ಪಡೆಯಲು, ನೀವು navigator.hardwareConcurrency ಆಸ್ತಿಯನ್ನು ಬಳಸಬಹುದು.
  • “—test” ಪ್ಯಾರಾಮೀಟರ್‌ನಲ್ಲಿ, ರನ್ ಮಾಡಲು ಪರೀಕ್ಷೆಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಗ್ಲೋಬ್ ಮಾಸ್ಕ್‌ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ (ಉದಾಹರಣೆಗೆ, ನೀವು “—test **/*.test.js.” ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು).
  • ಬಂಡಲ್ ಮಾಡಿದ ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ npm 10.2.0 ಮತ್ತು llhttp 9.1.2 ಪಾರ್ಸರ್ ಅನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ.
  • ವಿಷುಯಲ್ ಸ್ಟುಡಿಯೋ 2019 ಮತ್ತು 11.0 ಕ್ಕಿಂತ ಹಳೆಯದಾದ ಮ್ಯಾಕೋಸ್ ಆವೃತ್ತಿಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ.

Node.js ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಅನ್ನು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಸರ್ವರ್ ನಿರ್ವಹಣೆಗಾಗಿ ಮತ್ತು ಸಾಮಾನ್ಯ ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ನೆಟ್‌ವರ್ಕ್ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ರಚಿಸಲು ಎರಡೂ ಬಳಸಬಹುದು. Node.js ಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಕಾರ್ಯವನ್ನು ವಿಸ್ತರಿಸಲು, ಮಾಡ್ಯೂಲ್‌ಗಳ ದೊಡ್ಡ ಸಂಗ್ರಹವನ್ನು ಸಿದ್ಧಪಡಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ನೀವು HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 ಸರ್ವರ್‌ಗಳು ಮತ್ತು ಕ್ಲೈಂಟ್‌ಗಳು, ಏಕೀಕರಣಕ್ಕಾಗಿ ಮಾಡ್ಯೂಲ್‌ಗಳ ಅನುಷ್ಠಾನದೊಂದಿಗೆ ಮಾಡ್ಯೂಲ್‌ಗಳನ್ನು ಕಾಣಬಹುದು. ವಿವಿಧ ವೆಬ್ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳು, ವೆಬ್‌ಸಾಕೆಟ್ ಮತ್ತು ಅಜಾಕ್ಸ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳು, DBMS ಕನೆಕ್ಟರ್‌ಗಳು (MySQL, PostgreSQL, SQLite, MongoDB), ಟೆಂಪ್ಲೇಟಿಂಗ್ ಎಂಜಿನ್‌ಗಳು, CSS ಎಂಜಿನ್‌ಗಳು, ಕ್ರಿಪ್ಟೋ ಅಲ್ಗಾರಿದಮ್‌ಗಳ ಅಳವಡಿಕೆಗಳು ಮತ್ತು ದೃಢೀಕರಣ ವ್ಯವಸ್ಥೆಗಳು (OAuth), XML ಪಾರ್ಸರ್‌ಗಳು.

ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಸಮಾನಾಂತರ ವಿನಂತಿಗಳ ಸಂಸ್ಕರಣೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, Node.js ನಿರ್ಬಂಧಿಸದ ಈವೆಂಟ್ ನಿರ್ವಹಣೆ ಮತ್ತು ಕಾಲ್‌ಬ್ಯಾಕ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳ ವ್ಯಾಖ್ಯಾನವನ್ನು ಆಧರಿಸಿ ಅಸಮಕಾಲಿಕ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಮಾದರಿಯನ್ನು ಬಳಸುತ್ತದೆ. ಮಲ್ಟಿಪ್ಲೆಕ್ಸಿಂಗ್ ಸಂಪರ್ಕಗಳಿಗೆ ಬೆಂಬಲಿತ ವಿಧಾನಗಳೆಂದರೆ epoll, kqueue, /dev/poll, ಮತ್ತು ಆಯ್ಕೆ. ಸಂಪರ್ಕ ಮಲ್ಟಿಪ್ಲೆಕ್ಸಿಂಗ್‌ಗಾಗಿ, libuv ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು Unix ಸಿಸ್ಟಮ್‌ಗಳಲ್ಲಿ libev ಮತ್ತು Windows ನಲ್ಲಿ IOCP ಗಾಗಿ ಆಡ್-ಆನ್ ಆಗಿದೆ. ಥ್ರೆಡ್ ಪೂಲ್ ರಚಿಸಲು libeio ಲೈಬ್ರರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಮತ್ತು ತಡೆರಹಿತ ಕ್ರಮದಲ್ಲಿ DNS ಪ್ರಶ್ನೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು c-ares ಅನ್ನು ಸಂಯೋಜಿಸಲಾಗಿದೆ. ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ಉಂಟುಮಾಡುವ ಎಲ್ಲಾ ಸಿಸ್ಟಮ್ ಕರೆಗಳನ್ನು ಥ್ರೆಡ್ ಪೂಲ್ ಒಳಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಂತರ, ಸಿಗ್ನಲ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳಂತೆ, ಹೆಸರಿಸದ ಪೈಪ್ (ಪೈಪ್) ಮೂಲಕ ತಮ್ಮ ಕೆಲಸದ ಫಲಿತಾಂಶವನ್ನು ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್‌ನ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯನ್ನು Google ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ V8 ಎಂಜಿನ್‌ನ ಬಳಕೆಯ ಮೂಲಕ ಒದಗಿಸಲಾಗಿದೆ (ಇದಲ್ಲದೆ, ಚಕ್ರ-ಕೋರ್ ಎಂಜಿನ್‌ನೊಂದಿಗೆ ಮೈಕ್ರೋಸಾಫ್ಟ್ Node.js ನ ಆವೃತ್ತಿಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದೆ).

ಅದರ ಮಧ್ಯಭಾಗದಲ್ಲಿ, Node.js Perl AnyEvent, Ruby Event Machine, ಪೈಥಾನ್ ಟ್ವಿಸ್ಟೆಡ್ ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳು ಮತ್ತು Tcl ಈವೆಂಟ್ ಅನುಷ್ಠಾನಕ್ಕೆ ಹೋಲುತ್ತದೆ, ಆದರೆ Node.js ನಲ್ಲಿನ ಈವೆಂಟ್ ಲೂಪ್ ಅನ್ನು ಡೆವಲಪರ್‌ನಿಂದ ಮರೆಮಾಡಲಾಗಿದೆ ಮತ್ತು ಚಾಲನೆಯಲ್ಲಿರುವ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಈವೆಂಟ್ ನಿರ್ವಹಣೆಯನ್ನು ಹೋಲುತ್ತದೆ. ಬ್ರೌಸರ್‌ನಲ್ಲಿ. node.js ಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಬರೆಯುವಾಗ, ನೀವು ಈವೆಂಟ್-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ನ ನಿಶ್ಚಿತಗಳನ್ನು ಪರಿಗಣಿಸಬೇಕು, ಉದಾಹರಣೆಗೆ, "var result = db.query("select..");" ಕೆಲಸದ ಪೂರ್ಣಗೊಳ್ಳುವಿಕೆ ಮತ್ತು ಫಲಿತಾಂಶಗಳ ನಂತರದ ಪ್ರಕ್ರಿಯೆಗಾಗಿ ಕಾಯುತ್ತಿರುವಾಗ, Node.js ಅಸಮಕಾಲಿಕ ಮರಣದಂಡನೆಯ ತತ್ವವನ್ನು ಬಳಸುತ್ತದೆ, ಅಂದರೆ. ಕೋಡ್ ಅನ್ನು "db.query("ಆಯ್ಕೆ..", ಫಂಕ್ಷನ್ (ಫಲಿತಾಂಶ) {ಫಲಿತಾಂಶ ಸಂಸ್ಕರಣೆ});" ಆಗಿ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ, ಇದರಲ್ಲಿ ನಿಯಂತ್ರಣವು ತಕ್ಷಣವೇ ಮುಂದಿನ ಕೋಡ್‌ಗೆ ಹಾದುಹೋಗುತ್ತದೆ ಮತ್ತು ಡೇಟಾ ಬಂದಂತೆ ಪ್ರಶ್ನೆಯ ಫಲಿತಾಂಶವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲಾಗುತ್ತದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ