Node.js REPL
Node.js REPL(Read-Eval-Print Loop)是一个交互式的 JavaScript 运行环境,允许你在命令行中直接执行 JavaScript 代码。REPL 提供了一个方便的方式来测试和调试代码片段,以及学习 JavaScript 和 Node.js。以下是一些常用的 Node.js REPL 命令和操作:1. 启动 REPL:在终端或命令提示符中运行 node 命令,即可启动 Node.js REPL。node2. 执行代码:在 REPL 中,你可以直接输入 JavaScript 代码并按回车执行。例如:console.log('Hello, World!');3. 多行输入:如果你要输入多行代码,可以按下 Enter 进入下一行,如果代码完整,REPL 将执行它。let sum = 0;for (let i = 1; i <= 10; i++) { sum += i;}sum4. 特殊命令:REPL 提供一些特殊的命令,以及可以通过 . 来访问的全局对象。例如: .help:显示 REPL 命令列表。 .break:在多行输入时中断...
Node.js:NPM 使用介绍
Node.js 包管理器(NPM)是 Node.js 的默认包管理工具,用于管理和共享 Node.js 包。它是一个强大的工具,使你能够轻松地安装、共享和管理 Node.js 应用程序的依赖关系。以下是 NPM 的一些基本用法:1. 安装包(Install Packages):使用 npm install 命令来安装包。在你的项目文件夹中,运行:npm install package_name或者,如果你想将包添加到全局环境中,可以使用 -g 标志:npm install -g package_name2. 安装特定版本的包:你可以通过在包的名称后面添加 @version 来安装特定版本的包:npm install package_name@1.2.33. 安装包并将其添加到依赖关系(dependencies):当你安装一个包时,可以选择将它添加到项目的 dependencies 列表中,以便其他人可以轻松地安装相同的包。使用 --save 标志:npm install package_name --save4. 全局安装包(Global Install):全局安装的包可以在整个系统中...
Node.js 创建第一个应用
创建 Node.js 应用程序的第一步是创建一个简单的服务器。以下是一个简单的例子,演示如何创建一个使用 Node.js 内置模块 http 的服务器,并在用户访问时返回 "Hello, World!"。1. 创建项目文件夹: 在你选择的目录中创建一个新的文件夹,例如 myNodeApp。2. 在项目文件夹中创建文件: 在项目文件夹中创建一个名为 app.js 的文件,该文件将包含我们的 Node.js 代码。3. 编辑 app.js 文件: 使用文本编辑器打开 app.js 文件,并添加以下代码: // 导入 http 模块 const http = require('http'); // 创建 HTTP 服务器并监听端口 3000 const server = http.createServer((req, res) => { // 设置响应头 res.writeHead(200, {'Content-Type': 'text/plain'}); // 发送...
Node.js 安装配置
安装和配置 Node.js 是开始使用该技术栈的第一步。以下是在不同操作系统上安装和配置 Node.js 的一些建议步骤:在 Windows 上安装和配置 Node.js:1. 下载安装程序: - 访问 [Node.js 官方网站](https://nodejs.org/)。 - 在主页上选择 LTS 版本(长期支持版本)的 Node.js,并下载适合你 Windows 版本的安装程序。2. 运行安装程序: - 双击下载的安装程序,并按照安装向导的步骤进行操作。 - 默认情况下,安装程序会将 Node.js 和 npm(Node 包管理器)一同安装。3. 验证安装: - 打开命令提示符(Command Prompt)或 PowerShell。 - 运行以下命令验证 Node.js 和 npm 是否成功安装: node -v npm -v在 macOS 上安装和配置 Node.js:1. 使用 Homebrew 安装: - 打开终端。 - 如果未安装 Homebrew,可以按照 [Homebrew 官方文档](https://brew.sh...
Node.js 拓展教程
拓展(或扩展)Node.js 的过程通常涉及创建自定义模块、使用第三方模块,以及了解Node.js核心模块。下面是一个简单的Node.js拓展教程:1. 了解Node.js基础: 在开始拓展之前,请确保你对Node.js的基础概念有一定的了解。你需要知道如何使用npm(Node包管理器)、了解模块系统、了解事件驱动编程等。2. 创建自定义模块: - 创建一个新的文件,例如myModule.js。 - 在文件中定义你的模块,可以使用module.exports将函数、对象或变量暴露给其他文件。 // myModule.js function greet(name) { console.log(`Hello, ${name}!`); } module.exports = { greet: greet }; 在其他文件中使用: // main.js const myModule = require('./myModule'); myModule.greet('John');3. 使用第三方...
Node.js ZLIB
在 Node.js 中,zlib 模块提供了用于压缩和解压缩数据的功能,支持多种压缩算法,例如 Gzip、Deflate 等。以下是一些关于 Node.js 中 zlib 模块的基本用法:1. 压缩数据(Gzip):const zlib = require('zlib');const inputString = 'Hello, zlib!';zlib.gzip(inputString, (err, compressedBuffer) => { if (err) { console.error(err); return; } console.log('Compressed data:', compressedBuffer.toString('base64'));});2. 解压数据(Gzip):const zlib = require('zlib');const compressedBuffer = Buffer.from('H4sIAAAAAAAAA7NIzcnJVyjPL8...
Node.js 虚拟机
在 Node.js 中,vm 模块提供了一个简单的 API 来创建和运行 JavaScript 代码的虚拟机。虚拟机允许你在应用程序中隔离执行一段代码,提供了一种在一个上下文中运行脚本而不会影响到主程序的方法。以下是一些 vm 模块的基本用法:1. 创建虚拟机:const vm = require('vm');const sandbox = { x: 10, y: 20};const context = vm.createContext(sandbox);const result = vm.runInContext('x + y', context);console.log('Result:', result);2. 在当前上下文中运行代码:const vm = require('vm');const x = 5;const result = vm.runInThisContext('x * 2');console.log('Result:', result);3. 在新的上下文中运行代...
Node.js 实用工具
在 Node.js 中,有一个名为 util 的核心模块,提供了一些实用工具函数,用于支持常见的开发任务。以下是一些 util 模块中常用的功能:1. 继承工具函数:util.inherits(constructor, superConstructor) 用于实现对象间的继承。const util = require('util');function Animal(name) { this.name = name;}Animal.prototype.walk = function() { console.log(`${this.name} is walking.`);};function Bird(name) { Animal.call(this, name);}util.inherits(Bird, Animal);const eagle = new Bird('Eagle');eagle.walk();2. 事件触发器:util 模块提供了 EventEmitter 类,用于实现事件触发器。const util = require('u...
Node.js URL
在 Node.js 中,url 模块提供了处理和解析 URL(Uniform Resource Locator)的工具。这个模块可以用于解析 URL 字符串,构建 URL 对象,并提供了一些实用的方法来处理 URL。以下是一些关于 Node.js 中 url 模块的基本用法:1. 解析 URL 字符串:const url = require('url');const urlString = 'https://www.example.com:8080/path?query=param#fragment';const parsedUrl = url.parse(urlString, true);console.log('Parsed URL:', parsedUrl);2. 构建 URL 对象:const url = require('url');const urlObject = { protocol: 'https:', hostname: 'www.example.com', por...
Node.js UDP/Datagram
在 Node.js 中,UDP(User Datagram Protocol)是一种面向无连接的通信协议,用于在网络上发送和接收数据。Node.js 提供了 dgram 模块,用于创建 UDP 服务器和客户端。以下是一些关于 Node.js 中 UDP/Datagram 的基本用法:1. 创建 UDP 服务器:const dgram = require('dgram');const server = dgram.createSocket('udp4');server.on('listening', () => { const address = server.address(); console.log(`UDP Server listening on ${address.address}:${address.port}`);});server.on('message', (msg, rinfo) => { console.log(`Received message: ${msg} from ${rinf...
Node.js TTY
在 Node.js 中,TTY(Teletypewriter)是一个表示终端设备(例如终端或控制台)的抽象概念。TTY 模块提供了对终端 I/O 的访问,使得 Node.js 应用程序能够与用户通过命令行交互。以下是一些关于 Node.js TTY 模块的基本概念和用法:1. 获取 TTY 流:可以使用 process.stdin、process.stdout 和 process.stderr 来获取标准输入、标准输出和标准错误的 TTY 流。const tty = require('tty');console.log('Is stdin a TTY?', tty.isatty(process.stdin.fd));console.log('Is stdout a TTY?', tty.isatty(process.stdout.fd));console.log('Is stderr a TTY?', tty.isatty(process.stderr.fd));2. 创建 TTY 流:可以使用 tty.ReadStrea...
Node.js 进程
在 Node.js 中,process 对象提供了有关当前进程的信息,并允许你与进程进行交互。以下是一些与 Node.js 进程相关的基本用法:1. 获取进程 ID:console.log('Process ID:', process.pid);2. 获取执行路径:console.log('Current script:', process.argv[1]);3. 获取命令行参数:console.log('Command line arguments:', process.argv);4. 获取环境变量:console.log('Environment variables:', process.env);5. 退出进程:// 正常退出process.exit(0);// 异常退出process.exit(1);6. 事件监听:// 在进程退出时执行回调process.on('exit', (code) => { console.log(`Process exited with code ${code...
Node.js TLS/SSL
在 Node.js 中,TLS(Transport Layer Security)和 SSL(Secure Sockets Layer)是用于加密和安全传输数据的协议。TLS 是 SSL 的继任者,现在更常用。以下是在 Node.js 中使用 TLS/SSL 的基本概念和示例:创建 TLS/SSL 服务器:const fs = require('fs');const https = require('https');const options = { key: fs.readFileSync('private-key.pem'), // 私钥文件 cert: fs.readFileSync('public-cert.pem') // 公钥文件};const server = https.createServer(options, (req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); ...
Node.js 域
在 Node.js 中,"域"(Domain)是一种将处理多个 I/O 操作的代码组织在一起的机制。然而,需要注意的是,域已经被废弃,不再推荐使用,因为它在大多数情况下并不安全且容易引起混淆。在新版本的 Node.js 中,推荐使用 async/await、Promise、EventEmitter 等更现代的异步编程模型来代替域。原本,域的设计目标是为了在异步代码中更容易捕获和处理错误。域允许将错误处理代码聚合在一起,以便更容易地跟踪错误来源。以下是使用域的简单示例:const domain = require('domain');const server = require('http').createServer();const myDomain = domain.create();server.on('request', (req, res) => { myDomain.run(() => { // 处理请求 handleRequest(req, res); });});// 域内的异...
Node.js 路径
在 Node.js 中,path 模块提供了一组用于处理文件路径的实用工具函数。以下是一些常见的 path 模块的用法:1. 连接路径:使用 path.join() 方法可以连接多个路径片段,生成规范的路径。const path = require('path');const fullPath = path.join(__dirname, 'files', 'example.txt');console.log('Full Path:', fullPath);2. 解析路径:使用 path.resolve() 方法可以将相对路径解析为绝对路径。const path = require('path');const absolutePath = path.resolve('files', 'example.txt');console.log('Absolute Path:', absolutePath);3. 提取路径信息:使用 path.parse() 方法可以将...
Node.js 定时器
在 Node.js 中,定时器用于在一定的时间间隔后执行代码。Node.js 提供了两种定时器:setTimeout 和 setInterval。1. setTimeout:setTimeout 用于在一定的延迟后执行一次特定的代码。// 在3秒后执行一次特定的代码setTimeout(() => { console.log('3 seconds have passed.');}, 3000);2. setInterval:setInterval 用于在每个一定的时间间隔后重复执行特定的代码。// 每隔2秒执行一次特定的代码const intervalId = setInterval(() => { console.log('2 seconds have passed.');}, 2000);// 在10秒后停止定时器setTimeout(() => { clearInterval(intervalId); console.log('Interval timer stopped.');}, 10000);需要注意...
Node.js DNS
Node.js 提供了 dns 模块,用于执行域名解析和 DNS 查询操作。这个模块使得你可以在 Node.js 中进行与域名相关的操作,例如将域名解析为 IP 地址、反向解析 IP 地址等。以下是一些关于 Node.js 中 DNS 模块的基本用法:1. 解析域名:使用 dns.resolve 方法可以将域名解析为 IP 地址。有多个解析方法,如 dns.resolve4 用于解析 IPv4 地址,dns.resolve6 用于解析 IPv6 地址。const dns = require('dns');dns.resolve4('www.example.com', (err, addresses) => { if (err) { console.error(err); return; } console.log('IPv4 Addresses:', addresses);});2. 反向解析 IP 地址:使用 dns.reverse 方法可以执行反向解析,将 IP 地址转换为域名。const dns = requ...
Node.js 系统
在Node.js中,"系统" 通常指的是操作系统级别的功能,例如文件系统操作、进程管理等。以下是一些与系统相关的 Node.js 模块和功能:1. fs 模块(文件系统):fs 模块提供了对文件系统的访问,包括读取文件、写入文件、创建目录等操作。const fs = require('fs');// 读取文件fs.readFile('file.txt', 'utf-8', (err, data) => { if (err) { console.error(err); return; } console.log('File content:', data);});// 写入文件fs.writeFile('newFile.txt', 'Hello, World!', 'utf-8', (err) => { if (err) { console.error(err); return; } console.log(&...
Node.js 字符串解码器
在 Node.js 中,字符串解码器通常用于处理不同编码的字符串,将它们解码为 JavaScript 中的字符串。Node.js 提供了 Buffer 类,可以用于处理二进制数据和字符串的相互转换。以下是一些基本的字符串解码器的示例:1. 使用 Buffer 解码:// 创建一个包含 ASCII 编码的 Bufferconst asciiBuffer = Buffer.from('Hello, World!', 'ascii');// 将 Buffer 解码为字符串const asciiString = asciiBuffer.toString('ascii');console.log('ASCII String:', asciiString);// 创建一个包含 UTF-8 编码的 Bufferconst utf8Buffer = Buffer.from('你好,世界!', 'utf-8');// 将 Buffer 解码为字符串const utf8String = utf8Buffer.t...
Node.js 调试器
Node.js 提供了内置的调试器,可以帮助你调试应用程序。以下是一些关于 Node.js 调试器的基本概念和用法:1. 启用调试模式:在命令行中启动 Node.js 应用程序时,可以使用 --inspect 或者 --inspect-brk 参数来启用调试模式。--inspect 启动调试器并在启动时暂停,而 --inspect-brk 启动调试器并在应用程序启动时立即中断。node --inspect-brk your-app.js2. 使用 Chrome DevTools:通过使用 Chrome 浏览器的开发者工具,你可以连接到 Node.js 调试器。 打开 Chrome 浏览器,并在地址栏中输入 chrome://inspect。 点击 "Open dedicated DevTools for Node" 链接。 在弹出的 DevTools 窗口中,你应该看到 "node:\<Your App Name\>",点击 "Inspect" 链接即可连接到 Node.js 调试器。3. 在 Visual Stu...