- Node.js Web Development
- David Herron
- 524字
- 2021-06-11 18:48:14
Overview of Node.js
Node.js is an exciting new platform for developing web applications, application servers, any sort of network server or client, and general-purpose programming. It is designed for extreme scalability in networked applications through an ingenious combination of server-side JavaScript, asynchronous I/O, and asynchronous programming.
While only ten years old, Node.js has quickly grown in prominence and is now playing a significant role. Companies, both large and small, are using it for large-scale and small-scale projects. PayPal, for example, has converted many services from Java to Node.js.
The Node.js architecture departs from a typical choice made by other application platforms. Where threads are widely used to scale an application to fill the CPU, Node.js eschews threads because of their inherent complexity. It's claimed that with single-thread event-driven architectures, the memory footprint is low, throughput is high, the latency profile under load is better, and the programming model is simpler. The Node.js platform is in a phase of rapid growth, and many see it as a compelling alternative to the traditional web application architectures using Java, PHP, Python, or Ruby on Rails.
At its heart, it is a standalone JavaScript engine with extensions that is suitable for general-purpose programming and that has a clear focus on application server development. Even though we're comparing Node.js to application-server platforms, it is not an application server. Instead, Node.js is a programming runtime akin to Python, Go, or Java SE. While there are web application frameworks and application servers written in Node.js, it is simply a system to execute JavaScript programs.
The key architectural choice is that Node.js is event-driven, rather than multithreaded. The Node.js architecture rests on dispatching blocking operations to a single-threaded event loop, with results arriving back to the caller as an event that invokes an event handler function. In most cases, the event is converted into a promise that is handled by an async function. Because Node.js is based on Chrome's V8 JavaScript engine, the performance and feature improvements implemented in Chrome quickly flow through to the Node.js platform.
The Node.js core modules are general enough to implement any sort of server that is executing any TCP or UDP protocol, whether it's a Domain Name System (DNS), HTTP, internet relay chat (IRC), or FTP. While it supports the development of internet servers or clients, its biggest use case is regular website development, in place of technology such as an Apache/PHP or Rails stack, or to complement existing websites—for example, adding real-time chat or monitoring existing websites can easily be done with the Socket.IO library for Node.js. Its lightweight, high-performance nature often sees Node.js used as a glue service.
A particularly intriguing combination is the deployment of small services on modern cloud infrastructure using tools such as Docker and Kubernetes, or function-as-a-service platforms, such as AWS Lambda. Node.js works well when piding a large application into easily deployable microservices at scale.
With a high-level understanding of Node.js under our belt, let's dig a little deeper.
- Instant Node Package Manager
- C++面向?qū)ο蟪绦蛟O(shè)計(第三版)
- Docker and Kubernetes for Java Developers
- 自己動手實現(xiàn)Lua:虛擬機、編譯器和標準庫
- Vue.js快速入門與深入實戰(zhàn)
- Java Web開發(fā)之道
- Python測試開發(fā)入門與實踐
- Python高級編程
- SEO實戰(zhàn)密碼
- 假如C語言是我發(fā)明的:講給孩子聽的大師編程課
- 你必須知道的204個Visual C++開發(fā)問題
- Mastering JavaScript Design Patterns(Second Edition)
- AppInventor實踐教程:Android智能應(yīng)用開發(fā)前傳
- 軟件測試綜合技術(shù)
- Learning Unreal Engine Game Development