Node.js 是什么?

简介: Node.js 是什么?

简介

Node.js入门指南,服务器端JavaScript运行时环境。Node.js是在Google Chrome V8 JavaScript引擎的基础上构建的,它主要用于创建web服务器,但并不局限于此。

实际上Node.js 是把运行在浏览器中的js引擎抽离处理,进行再次封装,成为一个独立的运行环境。

Node.js是一个开源的跨平台JavaScript运行时环境。它几乎是任何类型项目的流行工具!

Node.js在浏览器之外运行V8 JavaScript引擎,这是谷歌Chrome的核心。这使得Node.js具有非常高的性能。

Node.js应用程序在单个进程中运行,而无需为每个请求创建新的线程。Node.js在其标准库中提供了一组异步I/O标准库,用于防止JavaScript代码阻塞。通常,Node.js中的库是使用非阻塞范式编写的,使阻塞行为成为例外而非常态。

区别其他后端语言,例如java、PHP等语言,进行请求的时候不会单独发送新的线程,而是Node.js引擎统一进行处理,只是在线程上分段处理,也类似于golang语言中协程的概念。

当Node.js执行I/O操作时,比如从网络读取、访问数据库或文件系统,而不是阻塞线程和浪费CPU周期等待,Node.js会在响应返回时恢复操作。

这使得Node.js可以在一台服务器上处理数千个并发连接,而不会带来管理线程并发的负担,这可能是一个重要的错误来源。

这样在进行高并发操作时,相对其他语言来说,相同资源下,可提供更高的并发数。

Node.js具有独特的优势,因为数百万为浏览器编写JavaScript的前端开发人员现在除了可以编写客户端代码外,还可以编写服务器端代码,而无需学习完全不同的语言。

基本上和js的操作一致,就能快速上手后端语言的开发工作。

在Node.js中,新的ECMAScript标准可以毫无问题地使用,因为你不必等待所有用户更新他们的浏览器——你可以通过更改Node.js版本来决定使用哪个ECMAScripts版本,你也可以通过运行带有标志的Node.js来启用特定的实验功能。

每个Node.js版本,都提供了对应ECMAScripts版本的支持。

示例

1. const http = require('http');
2. 
3. const hostname = '127.0.0.1';
4. const port = 3000;
5. 
6. const server = http.createServer((req, res) => {
7.   res.statusCode = 200;
8.   res.setHeader('Content-Type', 'text/plain');
9.   res.end('Hello World\n');
10. });
11. 
12. server.listen(port, hostname, () => {
13. console.log(`Server running at http://${hostname}:${port}/`);
14. });

1、第一行,我们请求的Node.js 的http模块。

2、http.createServer() 方法,我们可以创建一个http服务器并返回它。

3、每当收到新请求时,都会调用请求事件,提供两个对象:一个请求(http.IncomingMessage对象)和一个响应(http.ServerResponse对象)。

4、请求对象我们可命名为req,返回对象,也就是响应对象,我们命名为res

  • res.statusCode 可设置一个自定义的状态码
  • res.setHeader 可设置http请求的头部信息
  • res.end() 可返回请求响应的信息。

5、server.listen() 方法,开始进行监听,开始默认打印console.log()里的内容。

6、在浏览器中输入IP地址和端口,我们看到如下所示内容:

目录
打赏
0
0
0
0
10
分享
相关文章
Node.js一般在什么场景下使用?
Node.js是一个基于Chrome V8 JavaScript引擎构建的开源运行时环境,它允许开发者使用JavaScript在服务器端运行代码。Node.js具有高性能、轻量级、事件驱动和非阻塞I/O等特性,这些特性使得它在多种场景下具有广泛的应用。
81 0
狼叔:聊聊 Node.js
前阵子我在知乎上回答了《2021前端会有什么新的变化?》,单篇33.8万的阅读量,还是不错的,说明大家非常关心前端的变化趋势,这里再与大家分享一下我对 Node.js 相关内容的看法。
狼叔:聊聊 Node.js
Node.js 要完了吗?
不管你输入的是哪种技术都可以搜出来一大堆文章来,其中很多无疑写的就是垃圾。就算是 Kubernetes 之类的新技术也不能幸免,Node.js 自然也不例外。
Node.js的特点
作为后端JavaScript的运行平台,Node保留了前端JavaScript中些熟悉的接口,没有改写语言本身的任何特性,依旧基于作用域和原型链,区别在于它将前端中广泛应用的思想作用到了服务器端。下面我们来看看Node相对于其他语言的一些特点。
1438 0