当前位置: 首页 > news >正文

Node.js 模块详解

模块的概念

Node.js 运行在 V8 JavaScript 引擎上,通过 require() 函数导入相关模块来处理服务器端的各种进程。一个 Node.js 模块可以是一个函数库、类集合或其他可重用的代码,通常存储在一个或多个 .js 文件中。

例如,启动一个 Node.js 服务器时,我们需要导入 http 模块:

const http = require('http');const server = http.createServer((req, res) => {res.writeHead(200, {'Content-Type': 'text/plain'});res.end('Hello World\n');
});server.listen(3000, () => {console.log('Server running at http://localhost:3000/');
});

模块的类型

Node.js 中的模块主要分为三种类型:

第三方模块

这些模块由独立开发者开发,并在 NPM 仓库中提供使用。要在项目中使用这些模块,需要先在全局或项目文件夹中安装它们。

例如,安装 Express 模块:

npm install express

使用 Express 模块:

const express = require('express');
const app = express();app.get('/', (req, res) => {res.send('Hello World!');
});app.listen(3000, () => {console.log('Example app listening on port 3000!');
});

内置模块

Node.js 运行时软件自带了一些核心模块,如 httpfsconsole 等。这些模块无需安装,但使用时仍需要通过 require() 函数导入(除了少数全局对象如 processbuffer 和 console)。

例如,使用 fs 模块读取文件:

const fs = require('fs');fs.readFile('example.txt', 'utf8', (err, data) => {if (err) throw err;console.log(data);
});

本地模块

本地模块是你自己创建的 .js 文件,其中包含了你的应用程序所需的函数或类的定义。这些模块位于你的 Node.js 应用程序文件夹中,同样需要通过 require() 函数导入。

每个 .js 文件都有一个特殊的 module 对象,其 exports 属性用于向外部代码暴露特定的函数、对象或变量。

例如,创建一个名为 functions.js 的本地模块:

// functions.js
exports.power = (x, y) => Math.pow(x, y);
exports.squareRoot = x => Math.sqrt(x);
exports.log = x => Math.log(x);

在主应用程序中使用这个本地模块:

const mathFunctions = require('./functions');console.log(mathFunctions.power(2, 3));  // 输出: 8
console.log(mathFunctions.squareRoot(16));  // 输出: 4
console.log(mathFunctions.log(10));  // 输出: 2.302585092994046

通过使用模块,我们可以将 Node.js 应用程序的功能分割成更小、更易管理的部分,提高代码的可读性和可维护性。

相关文章:

Node.js 模块详解

模块的概念 Node.js 运行在 V8 JavaScript 引擎上,通过 require() 函数导入相关模块来处理服务器端的各种进程。一个 Node.js 模块可以是一个函数库、类集合或其他可重用的代码,通常存储在一个或多个 .js 文件中。 例如,启动一个 Node.js 服…...

大厂面试真题-说说tomcat的优缺点

Tomcat作为服务器,特别是作为Java Web服务器,具有一系列优点和缺点。以下是对其优缺点的详细分析: 优点 开源免费: Tomcat是一个免费、开源的Web服务器,用户可以在任何环境下自由使用,无需支付任何费用。…...

Linux系统编译boot后发现编译时间与Windows系统不一致的解决方案

现象 如下图,从filezilla软件看虚拟机Linux中编译的uboot.img修改时间与Windows系统时间不同 解决过程 在Linux中查看编译的uboot详细信息,从而得到编译时间。终端输入ls -l后,如下图: 结论 说明在Linux是按照Windows系统时…...

WPS Office手机去广高级版

工具介绍功能特点 WPS Office是使用人数最多的移动办公软件,独有手机阅读模式,字体清晰翻页流畅;完美支持文字,表格,演示,PDF等51种文档格式;新版本具有海量精美模版及高级功能 安装环境 [名称…...

Python爬虫基础-正则表达式!

前言 正则表达式是对字符串的一种逻辑公式,用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则的字符串”,此字符串用来表示对字符串的一种“过滤”逻辑。正在在很多开发语言中都存在,而非python独有。对其知识点…...

Python处理PDF组件使用及注意事项

在 Python 中处理 PDF 文件时, 使用的组件及注意事项如下: 1. PyPDF2 / PyPDF4 说明: PyPDF2 和 PyPDF4 都是功能强大的 PDF 操作库,适用于合并、拆分、旋转 PDF 文件,提取 PDF 元数据等。PyPDF4 是 PyPDF2 的一个分…...

langgraph_plan_and_execute

整体入门demo 教程概览 欢迎来到LangGraph教程! 这些笔记本通过构建各种语言代理和应用程序,介绍了如何使用LangGraph。 快速入门(Quick Start) 快速入门部分通过一个全面的入门教程,帮助您从零开始构建一个代理&a…...

[代码随想录打卡Day8] 344.反转字符串 541. 反转字符串II 54. 替换数字

反转字符串 难度:易。 问题描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 这个就是开头…...

DCN DCWS-6028神州数码 AC 设备配置笔记

DCN DCWS-6028神州数码 AC 设备配置笔记 一、前期准备 PC 电脑网络配置 目的:使 PC 能够访问 AC 的 web 管理控制台。配置详情:web 管理控制台地址为 192.168.1.10,将 PC 电脑 IP 地址配置在 192.168.1.1 - 192.168.1.254 网段内,如 192.168.1.110,子网掩码 255.255.255.…...

Go语言的常用内置函数

文章目录 一、Strings包字符串处理包定义Strings包的基本用法Strconv包中常用函数 二、Time包三、Math包math包概述使用math包 四、随机数包(rand) 一、Strings包 字符串处理包定义 Strings包简介: 一般编程语言包含的字符串处理库功能区别…...

华为OD技术一面手撕题

150. 逆波兰表达式求值 来自leecode 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都…...

Qt低版本多网卡组播bug

原文地址 最近在某个项目中,发现了一个低版本Qt的bug,导致组播无法正常使用,经过一番排查,终于找到了原因,特此记录。 环境 Qt:5.7.0 mingw32操作系统:windows 11 现象 在Qt5.7.0版本中&…...

Leetcode:540. 有序数组中的单一元素

题目 给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。 请你找出并返回只出现一次的那个数。 你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。 输入: nums [1,1,2,3,3,4,4,8,8] 输出: 2 输入:…...

Python数据分析NumPy和pandas(二十七、数据可视化 matplotlib API 入门)

数据可视化或者数据绘图是数据分析中最重要的任务之一,是数据探索过程的一部分,数据可视化可以帮助我们识别异常值、识别出需要的数据转换以及为模型生成提供思考依据。对于Web开发人员,构建基于Web的数据可视化显示也是一种重要的方式。Pyth…...

数组指针和指针的区别

区分数组指针和指针数组 int *p[3]和 int (*p)[3] 根据运算符的优先级,"[]"的优先级是高于“*”的,p就会先与[]结合,那么它本质就是数组,数组内存放的是指针,它叫指针数组。(int*p[3]&#xff…...

Linux git-bash配置

参考资料 命令提示符Windows下的Git Bash配置,提升你的终端操作体验WindowsTerminal添加git-bash 目录 一. git-bash配置1.1 解决中文乱码1.2 修改命令提示符 二. WindowsTerminal配置git-bash2.1 添加git-bash到WindowsTerminal2.2 解决删除时窗口闪烁问题 三. VS…...

【后端速成Vue】computed计算属性

前言: 本期将会介绍 Vue 中的计算属性,他和 methods 方法又会有什么区别呢?在这里都会给你一一讲解。 篮球哥找工作专属IT岗位内部推荐: 专属内推链接:内推通道 1、computed计算属性 概念: 基于现有的数据…...

力扣-每日温度

. - 力扣&#xff08;LeetCode&#xff09; 这是我的第一个思路 虽然可以得到正确答案 但是过于暴力 已经超出了时间限制 class Solution { public:vector<int> dailyTemperatures(vector<int>& temperatures) {vector<int>ans;for (int i 0; i <…...

(Go语言)初上手Go?本篇文章帮拿捏Go的数据类型!

1. bool 类型 布尔类型&#xff1a;只有 true 和 false 两种值 在Go中&#xff0c;整数 0 不代表 false 值&#xff0c;1也不代表 true 值 即数字无法代替布尔值进行逻辑判断&#xff0c;两者是完全不同的类型 布尔类型占用 1 字节 2. int 整型 Go中为不同位数的整数分配…...

支付宝域名如何加入白名单(扫码老是弹窗)

支付宝扫码之后,遇到非支付宝官方网页,请确认是否继续访问弹窗,问题解决办法。 本章教程提供解决办法,亲测有效。 一、打开支付宝开放平台 登录地址:https://open.alipay.com/ 然后进行扫码登录。 1、打开网页/移动应用开发 2、前往创建 3、创建应用...

Prompt-Builder:构建可复用提示词模板,提升大模型工程化效率

1. 项目概述&#xff1a;Prompt-Builder 是什么&#xff0c;以及为什么你需要它如果你和我一样&#xff0c;在过去一年里深度使用过各种大语言模型&#xff0c;那你一定经历过这样的时刻&#xff1a;面对一个复杂的任务&#xff0c;你精心构思的提示词&#xff08;Prompt&#…...

【信息科学与工程学】计算机科学与自动化 第十篇 芯片设计04(5)

载流子统计与输运函数方程式详表 1. 载流子统计基础 (zailiu-1 ~ zailiu-100) 序号 名称 数学表达式/核心描述 参数说明 物理意义 应用场景 条件描述 zailiu-1 麦克斯韦-玻尔兹曼分布 f(E)=Ae−E/(kB​T)或 f(v)=(2πkB​Tm​)3/2e−mv2/(2kB​T) E: 能量, v: 速度,…...

在vscode中快速配置taotoken的claude code插件实现稳定编程助手

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在VSCode中快速配置Taotoken的Claude Code插件实现稳定编程助手 对于使用VSCode的开发者而言&#xff0c;Claude Code插件是一个强…...

嵌入式扫码模组:POS机核心部件技术解析与选型指南

1. 项目概述&#xff1a;固定式POS机里的“眼睛”与“大脑”如果你拆开过一台超市、便利店或者餐厅里常见的固定式POS机&#xff0c;可能会发现一个有趣的现象&#xff1a;那个用来扫商品条码的“窗口”或“枪口”&#xff0c;其内部结构远比我们想象的要精密。它不是一个简单的…...

中小团队在ubuntu服务器利用taotoken管理多项目api密钥与用量

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 中小团队在 Ubuntu 服务器利用 Taotoken 管理多项目 API 密钥与用量 在 Ubuntu 服务器上运行多个 AI 实验项目是许多中小型技术团队…...

基于自然语言处理的macOS日历智能助手:原理、实现与定制

1. 项目概述&#xff1a;一个让Mac日历“开口说话”的智能助手最近在折腾个人效率工具&#xff0c;发现一个挺有意思的开源项目&#xff0c;叫macos-calendar-assistant-skill。这名字听起来有点绕&#xff0c;但说白了&#xff0c;它就是一个能让你的Mac日历变得更“聪明”的插…...

两个清华学霸 41 岁第二次创业,10 年把华为耳机里的“中国芯“做成了 800 亿市值

大家好&#xff0c;我是写代码的篮球球痴。写之前先给个数据感受。我自己 2015 年开始接触瑞芯微的 RK3168/RK3188/RK3128 做嵌入式 Linux&#xff0c;那时候做芯片选型&#xff0c;有一个共识——蓝牙芯片这块&#xff0c;国内基本没有能打的&#xff0c;要么用 CSR&#xff0…...

AI Coding如何落地APP开发——从个人玩具到公司级降本增效

一、AI 编程能力如何应用到APP开发团队 每天打开新闻都是各种&#xff1a; AI可以取代程序猿、AI可以独立写页面、AI可以独立完成APP&#xff0c;程序员马上要失业了&#xff0c;一个产品经理半天时间就能生成一个带完整页面的活动模块原型&#xff1b;一个运营人员一个小时就…...

Steam Deck Windows控制器驱动深度配置指南

Steam Deck Windows控制器驱动深度配置指南 【免费下载链接】steam-deck-windows-usermode-driver A windows usermode controller driver for the steam deck internal controller. 项目地址: https://gitcode.com/gh_mirrors/st/steam-deck-windows-usermode-driver 想…...

3种实战方法深度解析:如何高效使用TrollInstallerX安装TrollStore越狱工具

3种实战方法深度解析&#xff1a;如何高效使用TrollInstallerX安装TrollStore越狱工具 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX TrollInstallerX是一款专为iOS 14…...