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

前端框架前置课Node.js学习(1) fs,path,模块化,CommonJS标准,ECMAScript标准,包

目录

什么是Node.js

定义

作用:

什么是前端工程化

Node.js为何能执行Js

fs模块-读写文件

模块

语法:

1.加载fs模块对象

2.写入文件内容

3.读取文件内容

Path模块-路径处理

为什么要使用path模块

语法

URL中的端口号

http模块-创建Web服务

需求

步骤:

案例:浏览时钟

步骤:

什么是模块化

定义

概念

好处

使用

CommonJS标准

需求:

使用:

模块名或者路径:

ECMAScript标准-默认导入和导出

需求:

默认标准使用:

**注意:Node.js默认支持CommonJS标准语法

ECMAScript标准-命名导出和导入

需求

命名标准使用:

如何选择默认或者命名

概念

分类

要求:

注意:

需求:


什么是Node.js

定义

        Node.js是一个跨平台js运行环境,使开发者可以搭建服务器的js应用程序

作用:

        使用Node.js编写服务端程序

        1.编写数据接口,提供网页资源浏览功能等等

        2.前端工程化:为后续学习Vue和React框架做铺垫

什么是前端工程化

        开发项目直到上线,过程中集成的所有工具和技术        

Node.js为何能执行Js

首先:浏览器能执行js代码,依靠的是内核中的V8引擎(C++程序)

其次:Node.js基于Chrome V8引擎进行封装(运行环境)

区别:都支持ECMAScript标准语法,Node.js有独立的API

注意:Node.js环境没有DOM和BOM等

fs模块-读写文件

模块

类似插件,分装了方法/属性

fs模块:分装了本机文件系统进行交互的,方法/属性

语法:

1.加载fs模块对象

const fs = require('fs') // fs是模块标识符,模块的名字

2.写入文件内容

fs.writeFile('文件路径','写入内容',err => {

        //写入内容后的回调函数

})

3.读取文件内容

fs.readFile('文件路径',(err,data) =>{

        //读取后的回调函数

        // data是文件内容Buffer数据流

})

Path模块-路径处理

为什么要使用path模块

问题:Node.js代码中,相对路径是根据终端所在路径来查找的,可能无法找到你想要的文件

建议:在Node.js代码中,使用绝对路径

补充:__dirname内置变量(获取当前模块目录-绝对路径)

        window和mac系统的路径格式不同

注意:path.join()会使用特定平台的分隔符,作为定界符,将所有给定路径片段链接在一起

语法

1.加载path模块

const path = require('path')

2.使用path.join方法,拼接路径

path.join('路径1','路径2',...)

URL中的端口号

URL:统一资源定位符,简称网址,用于访问服务器里的资源

端口号:标记服务器里不同功能的服务程序

端口号范围:0-65535之间的任意整数

WEb服务程序:用于提供网上信息浏览功能

注意:0-1023和一些特定端口号被占用,我们自己编写服务程序请避开使用

http模块-创建Web服务

需求

创建Web服务兵响应内容给浏览器

步骤:

1.加载http模块,创建Web服务对象

2.监听request请求事件,设置响应头和响应体

3.配置端口号并启动Web服务

4.浏览器请求http://localhost:3000测试(localhost代表本机域名)

案例:浏览时钟

步骤:

1.基于http模块,创建Web服务

2.使用req.url获取资源路径,判断并读取index.html里字符串内容返回给请求方

3.其他路径,暂时返回不存在的提示

4.运行Web服务,用浏览器发起请求测试

什么是模块化

定义

CommonJS模块是为Node.js打包JavaScript代码的原始方式.Node.js还支持浏览器和其他JavaScript运行时使用的ECMAScript模块标准.在Node.js中,每个文件都被视为一个单独的模块.

概念

项目是由很多个模块文件组成的

好处

提高代码复用性,按需加载,独立作用域.

使用

需要标准语法导出和导入进行使用

CommonJS标准

需求:

定义Utils.js模块,封装基地地址和求数组总和的函数

使用:

1.导出:module.exports={}

2.导入:require('模块名或路径')

模块名或者路径:

内置模块:直接写名字(例如:fs,path,http)

自定义模块:写模块文件路径

ECMAScript标准-默认导入和导出

需求:

封装并导出基地址和求数组元素和的函数

默认标准使用:

1.导出:export default{}

2.导入:import变量名 from ' 模块名或路径'

**注意:Node.js默认支持CommonJS标准语法

如需使用ECMAScript标准语法,在运行模块所在文件夹新建package.json文件,并设置{"type":"module"}

ECMAScript标准-命名导出和导入

需求

封装并导出基地址和求数组元素和的函数

命名标准使用:

1.导出:export 修饰定义语句

2.导入:import{同名变量} from '模块名或路径'

如何选择默认或者命名

按需加载,使用命名导出和导入

全部加载,使用默认导出和导入

概念

将模块,代码,其他资料聚合成一个文件夹

分类

项目包:主要用于编写项目和业务逻辑

软件包:封装工具和方法进行使用

要求:

根目录中,必须有package.json文件(记录包的清单信息)

注意:

导入软件包时,引入的默认是index.js模块文件 / main属性指定的模块文件

需求:

封装数组求和函数模块,判断用户名和密码长度函数的模块,形成一个软件包

相关文章:

前端框架前置课Node.js学习(1) fs,path,模块化,CommonJS标准,ECMAScript标准,包

目录 什么是Node.js 定义 作用: 什么是前端工程化 Node.js为何能执行Js fs模块-读写文件 模块 语法: 1.加载fs模块对象 2.写入文件内容 3.读取文件内容 Path模块-路径处理 为什么要使用path模块 语法 URL中的端口号 http模块-创建Web服务 需求 步骤: 案例:浏…...

SpringBoot源码启动流程(待完善)

SpringBoot源码启动流程 1. 构造SpringApplication对象 1.1 推测web应用类型 判断关键类是否存在来区分类型 REACTIVENONESERVLET static WebApplicationType deduceFromClasspath() {if (ClassUtils.isPresent(WEBFLUX_INDICATOR_CLASS, null) && !ClassUtils.isP…...

存内计算技术打破常规算力局限性

目录 前言 关于存内计算 1、常规算力局限性 2、存内计算诞生记 3、存内计算核心 存内计算芯片研发历程及商业化 1、存内计算芯片研发历程 2、存内计算先驱出道 3、存内计算商业化落地 基于知存科技存内计算开发板ZT1的降噪验证 (一)任务目标以…...

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票帖子明细实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…...

RabbitMQ入门到实战——高级篇

消息的可靠性 生产者的可靠性(确保消息一定到达MQ) 生产者重连 这⾥除了enabled是false外,其他 initial-interval 等默认都是⼀样的值。 生产者确认 生产者确认代码实现 application中增加配置:(publisher-returns…...

05.阿里Java开发手册——前后端规约

【强制】前后端交互的 API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响 应体。 说明: 协议:生产环境必须使用 HTTPS。路径:每一个 API 需对应一个路径,表示 API 具体的请求地址: a&#xff…...

Linux网络服务部署yum仓库

目录 一、网络文件 1.1.存储类型 1.2.FTP 文件传输协议 1.3.传输模式 二、内网搭建yum仓库 一、网络文件 1.1.存储类型 直连式存储:Direct-Attached Storage,简称DAS 存储区域网络:Storage Area Network,简称SAN&#xff0…...

智慧工地AI识别安全预警解决方案---豌豆云

实现在工地内所有视频覆盖区域对工人未穿工作服的24小时AI识别监测,发现人员未穿工作服及时报警至平台; 实现在工地内重点关注区域的AI人员统计; 实现在工地内监控覆盖区域的烟雾、火源24小时AI识别检测,发现烟雾、火源时及时报警,并通知相关负责人采取…...

红队打靶练习:TOMMY BOY: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb WEB robots.txt get flag1 get flag2 FTP登录 文件下载 更改代理 ffuf爆破 get flag3 crunch密码生成 wpscan 1、密码爆破 2、登录wordpress ssh登录 get flag4 信息收集 get flag5 信息收集 1、arp …...

Springboot中的@DependsOn注解

在我的最近的Spring Boot项目中,我遇到了涉及两个Bean的情况,Bean1和Bean2。在初始化过程中,我需要Bean2依赖于Bean1。 其中Spring中的 DependsOn 注解,允许我指定在创建Bean2之前,Spring应确保Bean1已初始化。 Depen…...

Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)

专栏系列:Django学习教程 前言 highchart,国外。 echarts,国内。 本项目集成 hightchart和echarts图表库实现数据统计功能。 包括:折线图,柱状图,饼图和数据集图。 效果图 echats Highcharts 源代码…...

【机器学习 西瓜书】期末复习笔记整理

一些杂点: 测试集如何归一化? —— 不是用测试集的均值和标准差,而是用训练集的! 机器学习: 对计算机一部分数据进行学习,然后对另外一些数据进行预测与判断。 参考计算例题: 机器学习【期末复习…...

回归预测 | Matlab基于SO-GRU蛇群算法优化门控循环单元的数据多输入单输出回归预测

回归预测 | Matlab基于SO-GRU蛇群算法优化门控循环单元的数据多输入单输出回归预测 目录 回归预测 | Matlab基于SO-GRU蛇群算法优化门控循环单元的数据多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SO-GRU蛇群算法优化门控循环单元的数…...

自然语言处理实战项目25-T5模型和BERT模型的应用场景以及对比研究、问题解答

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目25-T5模型和BERT模型的应用场景以及对比研究、问题解答。T5模型和BERT模型是两种常用的自然语言处理模型。T5是一种序列到序列模型,可以处理各种NLP任务,而BERT主要用于预训练语言表示。T5使用了类似于BERT的预训…...

分布式搜索——Elasticsearch

Elasticsearch 文章目录 Elasticsearch简介ELK技术栈Elasticsearch和Lucene 倒排索引正向索引倒排索引正向和倒排 ES概念文档和字段索引和映射Mysql与Elasticsearch 安装ES、Kibana安装单点ES创建网络拉取镜像运行 部署kibana拉取镜像部署 安装Ik插件扩展词词典停用词词典 索引…...

用python实现调用nosql

要使用Python调用NoSQL数据库,您需要使用适当的Python库。以下是使用Python调用MongoDB和Redis两个流行的NoSQL数据库的示例: 调用MongoDB 要使用Python调用MongoDB,您需要安装pymongo库。您可以使用以下命令在终端或命令提示符中安装它&…...

setTimeout和setInterval定时器的返回值

nodejs中定时器返回Timer对象,window中定时器返回number,所以可以使用ReturnType预定义类型推断—或者使用window.setInterval代替setInterval https://mybj123.com/13153.html...

C/C++指针

指针(pointer)是C/C语言中的一种数据类型。指针与int、char等数据类型相似,都是在内存中开辟相应类型的数据区域使用,不同的是int存储的是整数值,而指针存储的是内存地址。指针是在内存中开辟指针类型的区域存储内存地…...

2024 基于 Rust 的 linter 工具速度很快

2024 年 Web 工具的一大趋势是使用 Rust 重写现有工具。Rust 是一种出色的编程语言,能生成运行速度惊人的二进制文件,且与其它 Web 工具的互操作性极佳,这得益于 WebAssembly 的帮助。swc 和 Turbopack 等工具的速度提升为快速开发体验带来了…...

JWT相关问题及答案(2024)

1、什么是 JWT,它通常用于什么目的? JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在不同实体之间安全地传输信息。它由三个部分组成:头部(Header)、载…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

网络编程(UDP编程)

思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

AspectJ 在 Android 中的完整使用指南

一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率&#xff0c…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...