Node.js 是一个开源和跨平台的 JavaScript 运行时环境,它在后台运行并提供各种服务,如Web服务器,数据库API等。
Node.js 的主要特点包括:
- 单线程:Node.js 不使用新的操作系统线程来处理每个连接。而是使用主线程通过事件循环来处理所有I/O操作。
- 异步I/O:Node.js 提供非阻塞的I/O操作,允许一个线程处理多个连接。
- 事件驱动:Node.js 使用事件和回调来处理并发I/O操作。
Node.js 的历史可以追溯到2009年,由Ryan Dahl创建,他希望建立一个基于事件驱动的服务器来处理大量的网络连接。
Node.js 的线程处理方式和事件驱动架构使其在处理高并发和I/O密集型应用程序时非常有效。
以下是一个简单的Node.js服务器示例,使用了http
模块来创建一个基本的web服务器:
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
在这个例子中,我们首先引入了http
模块,然后设置了服务器的hostname和port。在创建服务器的回调函数中,我们设置了响应的状态码,头部和响应内容,然后结束响应。最后,服务器开始监听指定的端口和主机名。
这个简单的Node.js服务器示例展示了Node.js的基础知识和线程处理方式,以及其事件驱动的架构。