node.js学习笔记——内部模块、自定义模块的导入和使用方式

2023-12-05


前文提要

本人仅做个人学习记录,如有错误,请多包涵

主要学习链接: 黑马程序员Node.js全套入门教程,nodejs新教程含es6模块化+npm+express+webpack


内部模块

使用require可以导入node.js中的内部模块,例如:fs、path、http等模块,例如这样

const fs=require('fs')

fs模块

导入方式

const fs=require('fs')

使用fs模块操作文件的读写。

fs.readFile

读文件:

fs.readFile("文件路径","utf-8", function(err,dataStr){
//函数体
})

文件中的内容以字符串的方式存储在dataStr中

fs.writeFile

写文件:

fs.writeFile("文件路径","写入内容", function(err){
//函数体
})

path模块

导入方式

const path=require('path')

__dirname

使用相对路径会出现文件路径动态拼接时的错误,绝对路径可以避免这个问题,但是绝对路径的可移植性很差。
所以可以采用另一种方式:‘__dirname’,其表示当前文件存储在哪个目录下(绝对路径表示)

path.join

如果使用加号直接拼接文件路径,容易出现错误

例如这样:

const path=__dirname+'./clock/1.html'

加号不能自己去除相对路径中的点号,所以有时候会出错,它只是单纯地拼接在了一起,但是如果使用path.join,写成这样:

const path=path.join(__dirname+'./clock/1.html')

则不会出现上述的错误,path.join中可以写很多参数

http模块

导入方式

const http=require('http')

创建服务器实例

const server=http.creatServer()

绑定request事件

const server.on('request',function(req,res){
//函数体
//req是请求
//res是响应,通过res.end('内容'),可以向客户端发送响应
})

启动服务器

const server.lesten(8080,function(){
//函数体
//服务器会在'http://127.0.0.1:8080'处启动
//8080是端口号,如果写的是80则可以忽略
})

自定义模块和第三方模块

第三方模块是指外部下载下来的模块,例如使用npm下载的模块,可以通过和内部模块一样的方式调用。
自定义模块是指,用户自己写的js文件,需要通过指定文件路径来进行导入,例如:

导入方式

const test=require('./test.js')

模块作用域

这里设计到模块作用域的概念,如果直接导入其他的js文件且js文件不做处理,是没有办法访问js文件中的内容的。模块作用域限制本js文件中的变量和方法只能在这个文件(模块)中使用,这样有利于避免全局污染。

共享方式

但是可以通过’module.exports’向外共享模块内的变量和方法,共享到的东西以’module.exports’指向的对象为主。

也可以通过’exports’当’module.exports’使用,这两个指针指向同一对象,如果修改了exports指向,'module.exports’不变,则文件共享的内容不变,因为以’module.exports’为主;如果module.exports指向的对象变了,则文件共享的内容改变。

添加样例:

module.exports.name="zs"

name是变量名称,自定义的。

module.exports.sayhello=function(){}

导入函数,则可以通过**导入模块名.sayhello()**调用函数


至此,结束。

如果你觉得这篇文章写的不错,多多点赞~收藏吧!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

node.js学习笔记——内部模块、自定义模块的导入和使用方式 的相关文章

  • 如何在 package.json 中对嵌套子模块和 TypeScript 使用“导出”?

    我想利用新的优势 出口 https nodejs org api packages html packages exportsNode js 的功能package json这样我就可以执行以下操作 exports dist index js
  • Node.js 有水豚吗?

    有谁知道 Node js 是否有类似 capybara 的东西 怎么样Zombie http zombie labnotes org 僵尸 js 使用 Node js 进行极其快速的无头全栈测试 The Bite 如果你要编写一个速度极快的
  • 具有独立 Node.js 服务器的虚拟主机

    目前有没有一种方法可以使用node js服务器进行虚拟托管 即在一个IP下托管多个域 当然 你可以使用bouncy https github com substack bouncy or 节点 http 代理 https github co
  • Visual Studio 代码断点在使用 TypeScript 的 Node.js 上不起作用

    我尝试了很多解决方案 但没有人适合我 代码执行 但我无法放置断点并调试它 请你帮助我好吗 我尝试过以下 VSCode 配置脚本 type node request launch name Typescript Node JS program
  • NodeJs 控制台中的 GET /bla - - ms - - 是什么意思?

    当我进入页面时 bla在我的 NodeJS 应用程序中 控制台打印出 GET bla ms 用文字来说 为了更容易谷歌搜索 dash dash ms dash dash 这是什么意思 这是输出morgan https github com
  • 节点:使用 Nodemailer 的直通流

    我正在使用officegen 生成一个Word 文档 然后计划使用Nodemailer 和Sendgrid 将其附加到电子邮件中 Officegen 输出一个流 但我更愿意将其直接传递到附件 而不是在本地保存 Word 文档然后附加它 Ge
  • 使用端口 80 的 AWS Elastic Beanstalk 上的 WebSocket 问题

    我正在将一个 node js 应用程序从 Heroku 迁移到在端口 80 上使用 WebSocket 的 AWS Elastic Beanstalk WebSocket 在 AWS Elastic Beanstalk 上返回 301 错误
  • Child_process 处理带有回车符 (\r) 的 STDOUT 流

    我正在编写一个简单的应用程序 它允许工作中的内部系统请求从远程服务器到使用 REST 调用发起的另一个远程服务器的复制过程 使用 rsync 我已经对express框架足够熟悉 并且刚刚开始尝试child process库 并偶然发现了一个
  • 有人在node/socket.io 中成功实现了动态命名空间吗?

    含义 用户对应用程序进行身份验证 gt 应用程序设置socket io连接的命名空间 http www socketioserver com NAMESPACE 并且节点服务器相应地响应无需针对特定名称空间进行硬编码 到那个特定的命名空间
  • socket.io 作为客户端

    有什么方法可以将socketio作为客户端运行 不是浏览器 而是nodejs脚本 我需要将数据从服务器广播到一些客户端 浏览器 和另一台linux机器 仅运行nodejs来获取变量 没有浏览器 欢迎任何想法 Regards github上有
  • 重写规则,以便正确加载具有绝对路径的 css 和 js 文件

    我花了两个小时 但我无法弄清楚 我不知道如何谷歌解决方案 这是我在 htaccess 文件中的重写规则 RewriteCond REQUEST URI blog RewriteRule blog http localhost 2368 1
  • S3.getSignedUrl 接受多种内容类型

    我正在使用react s3 uploader节点包 它接受一个signingUrl用于获取用于将对象存储到 S3 中的signedUrl 目前 我已经配置了一个 lambda 函数 带有 API 网关端点 来生成此signedUrl 经过一
  • 护照:登录和帐户注册的不同重定向

    我在我的应用程序中使用护照模块 github身份验证 我想根据操作进行重定向 我检查这是否只是正常登录或者用户是否第一次登录 passport use new GitHubStrategy clientID conf github app
  • 使用 AWS CDK 为 lambda 指定自定义角色

    我意识到它很新 但我没有看到任何语言的任何示例 说明如何为使用 AWS CDK 创建的 lambda 指定角色 我正在尝试这样做 const cdk require aws cdk cdk const lambda require aws
  • Mongoose 独特的验证不起作用。保存重复条目

    我正在开发一个 NodeJS 应用程序 其中express是框架 MongoDB是数据库 我正在使用猫鼬插件 我有一个父母模型 我已经添加了独特 真实到场 mobile 但是每当我添加相同的手机号码时 唯一性验证就会失败 除了保存重复的文档
  • Node.js 中的异步或步骤

    我无法让我的异步代码与 node js 一起使用 尝试异步和步骤库 代码仅返回第一个函数 似乎没有执行其余函数 我究竟做错了什么 thanks var step require step step function f1 console l
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • NodeJS Express Windows 最大连接数设置

    在哪里设置nodejs的最大连接数 用于使用express get 在 Windows 10 中 与linux中的最大文件 描述符 设置有关吗 有该设置的 Windows 版本吗 最好是在nodejs中进行设置 以便在迁移到unix时兼容
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库

随机推荐

  • pytorch如何生成小批量数据并传入神经网络?

    pytorch如何生成小批量数据并传入神经网络 第一部分 Excel表格数据的预处理 1 1 加载Excel数据 1 2 数据清洗 1 2 1 删除无用数据 1 2 2 填充缺失值 1 2 3 数据类型转换
  • 【已解决】ModuleNotFoundError: No module named ‘tensorboardX‘

    问题描述 Traceback most recent call last File train py line 84 in
  • OpenHarmony 实现屏幕横竖屏

    前言 OpenHarmony源码版本 4 0release 开发板 DAYU rk3568 一 修改 abilities 中的 orientation 实现横竖屏 当我们应用的Alility继承的是UIAbility时 对应的 module
  • 陶瓷材料检测项目及标准-科学指南针

    陶瓷原材料是用纯天然或生成化学物质历经成型和高溫煅烧做成的一类无机非金属原材料 它具备高溶点 高韧性 高耐磨性能 耐空气氧化等优势 可作为构造原材料 刀具材质 因为陶瓷还具备一些独特的性能 又可做为新型功能材料 各检测组织针对陶瓷检测的新项
  • 具有粗糙表面的回复反射器的反射

    系统设置 当试图将独立于入射方向的光大致反射回同一方向时 通常可以使用回复反射器 这个演示展示了如何在非序列场追迹的帮助下对这种结构进行建模 它还包括通过在表面上应用随机函数来对反射器壁的粗糙表面进行建模 任务描述 系统设置 仿真结果 涡流
  • 卖过房,进过厂,毕业两年后这个99年的小哥哥毅然转行车载测试,收入翻番!

    21年大学毕业的时候 我就知道可能接下来找工作是个难题 这年头 大学生早就不值钱了 毕业生人数一年比一年高 但企业的招聘岗位却只有那么几个 再加上疫情影响 各行各业都在缩减开支 减少招聘 985 211等重点大学的人才人家还挤破头 哪里还有
  • 开题报告-基于BS结构的NBA赛事系统设计与实现

    选题的国内外研究现状 众所周知 NAB联盟是全世界篮球最高水平的篮球联盟 NBA联盟代表着独特的篮球氛围 文化和劲爆的篮球水平 引领着世界篮球发展的趋势 对加快世界篮球水平的推动是至关重要的 近20年来 由于美国国内各职业体育联赛的迅速发展
  • 从抓包到接口测试,五分钟看完全过程解析,还说你不会测试?

    一 为什么抓包 1 从功能测试角度 通过抓包查看隐藏字段 Web 表单中会有很多隐藏的字段 这些隐藏字段一般都有一些特殊的用途 比如收集用户的数据 预防 CRSF 攻击 防网络爬虫 以及一些其他用途 这些隐藏字段在界面上都看不到 如果想检测
  • 镜像的优化

    一 镜像优化方法 查看上次装的镜像v1为525MB 对此进行优化 方法一 减少镜像的层数 清理镜像构建的中间产物 1 编辑docker目录中Dockerfile文件 利用shell命令对其进行减层以及清理和删包 2 创建镜像并对比 此时v2
  • pytorch中,如何将一个网络参数传给另一个相同网络的参数?

    要将一个网络的参数传递给另一个相同网络的参数 可以使用 state dict 方法和 load state dict 方法 假设有两个相同的网络 net1 和 net2 它们具有相同的网络结构 但是它们的权重和偏差不同 要将一个网络的参数传
  • 浅浅的聊一下时间窗口及其应用场景

    一 前言 时间窗口在限流 分布式 ID 的生成方面都有很多应用 这一篇主要目的是弄清楚怎么最好的实现这个功能 时间窗口的应用很多 可以用于统计和监控 也可以用于限流和流量控制 或者在指定窗口里面做实时计算 ID 生成等业务处理等 二 原理
  • 【计算机毕设选题推荐】基于Java的生活超市系统的设计与实现

    精彩专栏推荐订阅 在下方主页 作者主页 计算机毕设木哥 文章目录 一 项目介绍 二 开发环境 三 系统展示 四 代码展示 五 项目总结 font color fe2c24 大家可以帮忙点赞 收藏 关注 评论啦 一 项目介绍 在当前数字化和信
  • C言C语之数据类型、运算符与表达式

    01 C语言的数据类型 数据类型一般是按照被定义变量的性质 表现形式 占据的内存大小 构造特点来进行划分的 C语言中 数据类型分为 基本数据类型 构造数据类型 指针类型 空类型四大类 基本类型又分为 整型 字符型 实型 或浮点型 枚举类型
  • 简单的配音软件有哪些?告诉你怎么用机器实现配音

    爱看电视剧 甄嬛传 的小伙伴们应该都对这几句经典台词有深刻的印象吧 三阿哥他 又长高了 粉色娇嫩 你如今几岁了 臣妾做不到啊 皇额娘她推了熹娘娘 她推了熹娘娘 惟愿逆风如解意 容易莫摧残 这福气给你要不要啊 有时候我一看见这些台词 脑海里仿
  • 国产手机品牌放弃低端市场,山寨手机卷土重来,价格低至80元

    国产手机品牌纷纷哀叹手机不好卖 相比起品牌手机的哀叹 山寨手机则没有怨天尤人 而是积极主动的寻找市场机会 比国产手机品牌更能在特殊的市场环境中求生存 据某电商平台的数据 山寨手机如今仍然占有不小的市场份额 他们主要以做低端机为主 价格非常实
  • 图片编辑软件哪个好?一键美化

    图片编辑软件是一种功能强大的工具 可以帮助使用者对数字图像进行各种编辑和修饰 这些软件提供了各种工具和功能 使用者可以对图像进行裁剪 调整亮度 对比度 色彩平衡 应用滤镜效果 添加文字和形状等操作 通过这些图片编辑修改文字软件 可以大大增强
  • 基于SpringBoot实现功能最全电影购票与信息资讯平台

    作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智能与大数据 简历模板
  • 【电子学会】2023年05月Python三级试卷

    青少年软件编程 Python 等级考试试卷 三级 分数 100 题数 38 一 单选题 共25题 每题2分 共50分 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
  • 电感耦合等离子体(ICP)-科学指南针

    ICP 即 电感耦合等离子体 Inductively Coupled Plasma 一般指电离度超过0 1 被电离了的气体 这种气体不仅含有中性原子和分子 而且含有大量的电子和离子 且电子和正离子的浓度处于平衡状态 从整体来看是中性的 有时
  • node.js学习笔记——内部模块、自定义模块的导入和使用方式

    文章目录 前文提要 内部模块 fs模块 导入方式 fs readFile fs writeFile path模块