Home > Article > Web Front-end > Is nodejs a server?
nodejs is not a server, but a JavaScript running environment based on the Chrome V8 engine; nodejs uses an event-driven, non-blocking I/O model to allow JavaScript to run on the server-side development platform.
The operating environment of this article: Windows 7 system, nodejs version 10.16.2, DELL G3 computer
#Is nodejs a server?
nodejs is not a server.
Node.js is a JavaScript running environment based on the Chrome V8 engine. Node.js uses an event-driven, non-blocking I/O model, making it lightweight and efficient. Node.js's package manager npm is the world's largest open source library ecosystem.
Node.js was released in May 2009 and developed by Ryan Dahl. It is a JavaScript running environment based on the Chrome V8 engine. It uses an event-driven, non-blocking I/O model to allow JavaScript to run in A server-side development platform that makes JavaScript a scripting language on par with server-side languages such as PHP, Python, Perl, and Ruby.
Node.js optimizes some special use cases and provides alternative APIs to make V8 run better in non-browser environments. The V8 engine executes Javascript very quickly and has very good performance. It is based on Chrome JavaScript The platform established at runtime is used to easily build network applications with fast response speed and easy expansion.
Main functions
The V8 engine itself uses some of the latest compilation technologies. This greatly improves the running speed of code written in scripting languages such as Javascript and saves development costs. Demanding performance is a key factor in Node. Javascript is an event-driven language, and Node takes advantage of this to write a highly scalable server. Node uses an architecture called an "event loop" to make writing highly scalable servers easy and safe. There are a variety of techniques for improving server performance. Node has chosen an architecture that can both improve performance and reduce development complexity. This is a very important feature. Concurrent programming is often complex and full of landmines. Node bypasses these but still provides great performance.
Node uses a series of "non-blocking" libraries to support the event loop. Essentially, it provides interfaces for resources such as file systems and databases. When sending a request to the file system, there is no need to wait for the hard disk (to address and retrieve the file). The non-blocking interface will notify Node when the hard disk is ready. This model simplifies access to slow resources in a scalable way that is intuitive and easy to understand. Especially for users who are familiar with DOM events such as onmouseover and onclick, they will feel familiar.
Although letting Javascript run on the server side is not a unique feature of Node, it is one of its powerful features. We have to admit that the browser environment limits our freedom to choose programming languages. Any desire to share code between servers and increasingly complex browser client applications can only be achieved through Javascript. Although there are other platforms that support Javascript running on the server side, Node has developed rapidly and become the de facto platform because of the above characteristics.
In the short time since Node was launched, the community has contributed a large number of extension libraries (modules). Many of them are drivers for connecting to databases or other software, but many of them are very useful software produced by their capabilities.
Finally, I have to mention the Node community. Although the Node project is still very young, it is rare to see such a passionate community for a project. Whether you are a novice or an expert, everyone uses and contributes their abilities around the project, and is committed to creating a paradise for exploration, support, sharing, and listening to suggestions.
Recommended learning: "node.js Video Tutorial"
The above is the detailed content of Is nodejs a server?. For more information, please follow other related articles on the PHP Chinese website!