node知识点

  1. 谷歌浏览器内运行一个V8的JS引擎,该引擎负责接收JS代码,优化代码,然后在计算机上执行。

  2. node.js: JS代码用于服务器端脚本而开发的环境。

  • 开源
  • 跨平台:不局限于单一的操作系统或硬件架构
  • JS运行时环境
  1. node.js如何工作?
  • V8引擎:包含一个内存堆(数据存储)和调用堆栈(管理函数执行顺序的数据结构)。
  • Libuv:执行输入/输出(I/O)操作的C语言库。Libuv是跨平台的(可以在任何操作系统上运行),并且专注于异步I/O。
  • Event Loop:事件循环运行时,会检查调用栈是否为空。如果调用栈不空,它就会允许正在进行的进程继续。但如果调用栈为空,它就会将回调队列中的第一条指令发送给 JavaScript 引擎。然后,引擎会将该指令(函数)放入调用栈并执行。

node知识点

      • 1.fs文件系统模块
      • 2.path路径模块
      • 3.http模块
      • 4.模块化

  1. node.js是基于谷歌V8引擎的JS运行环境。(后端) 在前端中运行环境为浏览器。

  2. 查看node版本号: node -v

  3. 在node.js中执行js代码:

     1. 进入终端2. 输入node要执行的JS文件名
    

1.fs文件系统模块

fs模块时Node.js提供, 用来操作文件的模块,提供了一系列方法和属性,用来满足需求。
1. fs.readFile()读物指定文件中的内容

        fs.readFile(path[, options], callback)path: 字符串, 表示文件路径options: 以什么编码格式来读取文件(默认指定utf8)callback: 文件读取完成后, 通过回调函数拿到读取结果(err, dataStr)。注意:读取成功,则err为null读取失败, err为错误对象,datastr为undefined2.  **fs.writeFile()指定文件中写入内容**fs.writeFile(file, data[, options], callback)file: 指定一个文件路径的字符串,表示文件的存放路径。data: 写入的内容options: 什么格式写入文件内容 callback: 文件写入完成后的回调函数

join() 将数组转化为字符串,是关于数组的方法。
split() 将字符串切割成数组,是关于字符串的方法。


处理文件路径问题:
在使用fs模块操作文件时,如果提供的操作路径以./或…/开头的相对路径时,很容易出现路径动态拼接错误的问题。
原因: 是因为代码在运行的时候,会以执行node命令时所处的目录,动态拼接出被操作文件的完整路径。
解决: 使用fs模块操作文件时,给出完整路径—绝对路径

    __dirname表示当前文件所处的目录

2.path路径模块

处理路径的模块。

  1. path.join() 多个路径片段拼接为完整的路径字符串。

     path.join([...paths])...paths<string>路径片段的序列返回值<string> 
    
  2. path.basename() 获取路径中最后一部分,通常获取路径中的文件名。

     path.basename(path[, ext])path<string>, 表示一个路径的字符串ext<string>, 表示文件扩展名返回:<string>表示路径中的一部分
    
  3. path.extname() 可以获取路径中的扩展部分

     path.extname(path)path<string>, 表示一个路径的字符串返回:<string>返回得到扩展名的字符串
    

3.http模块

用来创建web服务器的模块。

  1. 创建web服务器的基本步骤:

     1. 导入http模块2. 创建web服务器实例3. 为服务器实例绑定request事件,监听客户端请求4. 启动服务器
    

// 1. 导入HTTP模块
const http = require('http')// 2. 创建web服务器实例
const server = http.createServer()// 3. 为服务器实例绑定request事件,触发回调函数,
// 里面有req请求对象(包含客户端相关数据和属性), 
// res参数(向客户端返回相应内容) res.end()向客户端发送指定的内容,并结束这次请求的处理过程
server.on('request', function(req, res){console.log('someone visit web server');
})// 4. 启动服务器
server.listen(80, function(){console.log('server running at http://127.0.0.1');
}) 

注意: 当调用res.end()方法,向客户端发送中文内容的时候,会出现乱码问题
解决办法: res.setHeader(‘Content-Type’, ‘text/html; charset=utf-8’)


  1. 根据不同的url响应不同的html内容

     基本步骤:1. 获取请求的url地址2. 设置默认的响应内容3. 判断用户请求的是否为 / 或者 /index.js4. 判断用户请求的是否是/about.html5. 设置Content-Type 响应头,防止中文乱码6. 使用res.end() 把内容响应给客户端
    

4.模块化

模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。

加载模块: 使用require(),可以加载需要的内置模块、用户自定义模块、第三方模块使用。

当使用require()方法加载其他模块时,会执行加载模块中的代码。


向外共享模块作用域中的成员:

module对象: 每一个 .js自定义模块中都有一个module对象,它里面存储了和 当前模块有关的信息

module.exports 对象:(默认为空对象)
在自定义模块中,可以使用module.exports对象,将模块内的成员共享出去,供外界使用。
外界用require()方法导入自定义模块时,得到的就是module.exports所指向的对象。

exports对象: 和module.exports指向一样,但是最终以module.exports所指向对象为主。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/596354.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生成式AI:软件工程的未来伙伴

随着技术不断进步&#xff0c;软件工程正在经历一场革命性的变革。从最初的穿孔卡片和汇编语言编程&#xff0c;到现代集成开发环境和高级编程语言&#xff0c;软件工程已经走过了一条漫长的路。现在&#xff0c;生成式人工智能(AI)正打开新的篇章&#xff0c;不仅对传统的编码…

解决SyntaxError: future feature annotations is not defined,可适用其他包

方法&#xff1a;对报错的包进行降级 pip install tikzplotlib0.9.8site-packages后面是使用pip install安装的包&#xff0c;根据这个找到报错的包 想法来源&#xff1a; 环境是python3.6&#xff0c;完全按照作者要求进行环境配置&#xff0c;但仍报错。 我在网上找的解决…

当AI遇见大脑:电脑与人脑协同“进化”

编者按&#xff1a;2023年是微软亚洲研究院建院25周年。借此机会&#xff0c;我们特别策划了“智启未来”系列文章&#xff0c;邀请到微软亚洲研究院不同研究领域的领军人物&#xff0c;以署名文章的形式分享他们对人工智能、计算机及其交叉学科领域的观点洞察及前沿展望。希望…

FFmpeg之——获取上传视频的尺寸(长、宽)

获取上传视频的尺寸&#xff1a; 获取视频尺寸通常需要借助第三方库FFmpeg。 首先&#xff0c;确保你的系统中已安装了FFmpeg&#xff0c;并且FFmpeg的可执行文件路径已经添加到你的系统环境变量中。 1.官网下载ffmpeg 进入 链接: ffmpeg官网 网址&#xff0c;点击下载wind…

MySQL中的连接池

数据库的连接池 1 &#xff09;概述 网站连接数据库&#xff0c;为庞大用户的每次请求创建一个连接是不合适的关闭并重新连接的成本是很大的处理方法&#xff1a;设置最大值, 最小值, 设置最多闲置连接&#xff0c;设置等待阻塞 2 &#xff09;示例演示 import threading i…

C++五子棋人机对战(已修复已知问题)

C五子棋人机对战(含注释)-CSDN博客 C五子棋人机对战-CSDN博客 这两篇博客中有个bug&#xff0c;就是没加srand(time(0));这个语句(放在主函数的最开头) 改正代码 #include<bits/stdc.h>//万能头 #define ll long long using namespace std; ll n,a[1000][1000],x,y,…

架构设计系列9,10

架构设计系列9&#xff1a;前端架构和后端架构的区别 前端架构和后端架构都是软件系统中最关键的架构层&#xff0c;负责处理不同方面的任务和逻辑&#xff0c;两者之间是存在一些区别和联系的&#xff0c;我会从以下几个方面来阐述&#xff1a; 定位和职责 ● 前端架构主要…

【Wechat_MiniProgram_JS】拓展运算符——`...`JavaScript运算符?

拓展运算符... **… 运算符&#xff0c;是 ES6 里一个新引入的运算符&#xff0c;也叫展开运算符&#xff0c;**我们每天都要和它打交道。 简而言之就是&#xff0c;… 运算符可以展开一个可迭代对象中的所有项。 可迭代的对象一般是指可以被循环的&#xff0c;包括&#xff1a…

一文解释Linux的内存分页管理

内存是计算机的主存储器。内存为进程开辟出进程空间&#xff0c;让进程在其中保存数据。我将从内存的物理特性出发&#xff0c;深入到内存管理的细节&#xff0c;特别是了解虚拟内存和内存分页的概念。 内存 简单地说&#xff0c;内存就是一个数据货架。内存有一个最小的存储…

书客、孩视宝、明基护眼台灯好不好用?护眼灯测评对比!

现在一些家长对自家孩子的健康也是特别的重视&#xff0c;从小时开始的儿童枕&#xff1b;再到保护眼睛的护眼台灯、OK眼镜&#xff1b;再到青少年时期的生长激素...可以说是穷出不尽&#xff0c;但是关于孩子使用的东西又不能马虎&#xff0c;每次要帮孩子选东西的时候可是一阵…

四川思维跳动商务信息咨询有限公司电商服务怎么样

随着电商行业的迅猛发展&#xff0c;越来越多的企业开始寻求专业的电商服务以提升自身竞争力。四川思维跳动商务信息咨询有限公司作为一家专注于电商服务的公司&#xff0c;凭借其卓越的服务品质和创新能力&#xff0c;已经在业内树立了良好的口碑。本文将为您详细解析四川思维…

办公宝典:兼具多功能的4大办公软件app推荐!

现在&#xff0c;随着全球化和互联网的发展&#xff0c;团队协作成为企业成功的关键所在。在这个环境中&#xff0c;协同办公软件成为无法离开的工具。 在市面上&#xff0c;有很多种协同办公软件可供选择。这里介绍4款与协同办公密切相关的软件&#xff0c;它们提供了许多功能…

Pendulum详解2——Pendulum高级应用 - 精通时间的玩法

目录 写在开头1.简单回顾2. 时间周期和区间2.1 处理时间周期2.2 时间区间的处理2.3 实际场景案例2.4 复杂周期的处理2.5 区间计算中的时区考虑3. 时间格式本地化3.1 解释多地区的本地化支持3.2 演示国际化灵活性3.3 处理不同语言和习惯4. 时间迭代4.1 Pendulum的时间迭代方法4.…

C#基础:字段的初始化、继承

一、字段的初始化 class Test {static int Main(string[] args){var list new List<Calculate>();//1.Calculate中加入abvar calculate new Calculate { a 2, b 3 };//2.Calculate中加入Value列表calculate.Values.Add(new Value { id 1, value 6 });calculate.Va…

【操作系统】输入输出系统

6.1 I/O系统的功能、模型和接口 I/O系统管理的主要对象是I/O设备和相应的设备控制器。其最主要的任务是&#xff0c;完成用户提出的I/O请求&#xff0c;提高I/O速率&#xff0c;以及提高设备的利用率&#xff0c;并能为更高层的进程方便地使用这些设备提供手段。 6.1.1 I/O系…

Ubuntu 22.04/20.04 安装 SSH

OpenSSH 是安全远程通信的重要工具&#xff0c;提供了一种安全的方式来访问和管理服务器。对于那些计划在 Ubuntu 22.04 Jammy Jellyfish 或其较旧的稳定版本的 Ubuntu 20.04 Focal Fossa 上安装 SSH 并启用它的人来说&#xff0c;了解其功能和优势至关重要。 OpenSSH的主要特…

vLLM部署推理及相关重要参数

部署示例代码 from vllm import LLM, SamplingParamsprompts ["Hello, my name is","The president of the United States is","The capital of France is","The future of AI is", ] sampling_params SamplingParams(temperature0…

技术学习|CDA level I 描述性统计分析(数据的描述性统计分析)

技术学习|CDA level I 描述性统计分析&#xff08;数据的描述性统计分析&#xff09; 数据的描述性统计分析常从数据的集中趋势、离散程度和分布形态3个方面进行。 一、集中趋势 集中趋势是指数据向其中心值靠拢的趋势。测量数据的集中趋势&#xff0c;主要是寻找其中心值。…

python延迟绑定是什么?

延迟绑定是什么&#xff1f; Python中的延迟绑定是指在嵌套函数中&#xff0c;内部函数在被调用时才会绑定外部函数的变量&#xff0c;而不是在定义内部函数时就绑定。这种绑定方式可以导致一些出乎意料的行为&#xff0c;因为变量的值是在函数调用时决定的&#xff0c;而不是…

修改选择框el-select样式,显示及下拉样式

修改选择框el-select样式,显示及下拉样式 .el-input__inner {background: rgba(25, 126, 195, 0.2);border: none;color: #fff; }.el-select-dropdown {background: rgba(19, 73, 104, 0.79);border: 2px solid #48e3ff;border-radius: 0; }.el-popper .popper__arrow {display…