前端框架前置课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属性指定的模块文件

需求:

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

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

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

相关文章

【NI国产替代】NI‑9234,4通道,51.2 kS/s/ch,±5 V,C系列声音与振动输入模块

4通道,51.2 kS/s/ch,5 V,C系列声音与振动输入模块 NI‑9234可以测量来自集成电子压电(IEPE)和非IEPE传感器的信号,例如加速度计、转速计和接近式探针。 NI‑9234还可兼容智能TEDS传感器。\n\nNI‑9234提供了宽动态范围&#xff0c…

开启C++之旅(下):引用、内联函数及现代特性(auto和范围for循环)

上次介绍了:开启C之旅(上):探索命名空间与函数特性(缺省参数和函数重载) 今天就接着进行c入门的知识讲解 文章目录 1.引用1.1引用概念1.2引用特性1.3常引用其他情况 1.4引用使用场景1.4.1做参数1.4.2做返回…

Proxy的使用方法和13种拦截操作

前言 proxy是ES6新推出的方法,功能很强大。属于元编程,也就是修改js本身的一些东西。可以对数组,对象,函数等引用类型的对象进行一些复杂的操作。 其中,大部分人应该最熟悉的莫过于vue3中使用proxy替换了defineProperty,而且还实现了本身defineProperty不能实现的一些东西。 …

在校大学生可以考哪些 ?(38个考证时间表)

这是整理的在校大学生可以考的,有的对报名条件没有要求,有的是高中以上学历,还有一些应届生可以报考的。可以在支付宝搜索【亿鸣证件照】或者微信搜索【随时照】制作这些考证要求的证件照哦 1、教师资格证 2、英语四六级 3、计算机二级 4、普…

JVM实战(19)——JVM调优工具概述

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

代码随想录 Leetcode541. 反转字符串 II

题目&#xff1a; 代码(首刷自解 2024年1月16日&#xff09;&#xff1a; class Solution { public:void reverse(string& s,int left,int right) {char temp;while (left < right) {temp s[left];s[left] s[right];s[right] temp;left;--right;}return;}string rev…

FastDFS 环境搭建及使用详解

文章目录 1、简介1.1 分布式文件系统1.2 FastDFS1.3 FastDFS架构 2、环境搭建2.1 FastDFS安装2.1.1 安装前准备2.1.2 安装包下载2.1.3 安装 libfastcommon2.1.4 安装 libserverframe2.1.5 安装 FastDFS 2.2 FastDFS配置2.2.1 配置tracker2.2.1.1 创建 tracker 工作目录2.2.1.2 …

Android APP开发集成微信登陆流程(手把手新手版)

本文比较适合新手玩家&#xff0c;老玩家就不要看了 昨天整了下微信登陆&#xff0c;乍一看官方文档还有点难懂&#xff01;遂自己整理了下流程&#xff0c;给大家参考参考。 官方文档链接&#xff1a;准备工作 | 微信开放文档微信开发者平台文档https://developers.weixin.q…

晶圆表面缺陷检测现状概述

背景&#xff1a; 晶圆表面缺陷检测设备主要检测晶圆外观呈现出来的缺陷&#xff0c;损伤、毛刺等缺陷&#xff0c;主要设备供应商KLA&#xff0c;AMAT&#xff0c;日立等&#xff0c;其中KLA在晶圆表面检测设备占有市场52%左右。 检测设备分类&#xff1a; 电子束设备和光学…

浅谈安科瑞电流表和频率表在冰岛某木制品工厂的的应用

摘要&#xff1a;用户侧配电系统的智能化、精细化、可视化是当下配电管理的必然趋势。针对用户侧的配电进线回路&#xff0c;设计安装智能仪表&#xff0c;再通过设置仪表参数来实时监控各负载回路的工作状态&#xff1b;提高用能安全、提升设备维护效率、降低维护的人工成本、…

分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测

分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测 目录 分类预测 | Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现CS-SVM布谷鸟算法优化支持向量机的数据分类预测。 2.自带数据…

Matlab 使用 DH table 建立的 robot 和实际不符

机器人仿真 想借助 matlab robotics toolbox 来仿真机器人&#xff0c;但是直接输入自己的 DH table 显示出来的 robot 和实际不情况不符。 DH table 建立 robot Build Manipulator Robot Using Kinematic DH Parameters 主要使用 setFixedTransform&#xff0c;DH table 中…

【松叶漫话】来聊聊ChatGPT 和文心一言吧

两大AI助手的较量 在当今信息技术飞速发展的时代&#xff0c;人工智能助手成为我们生活中不可或缺的一部分。ChatGPT和文心一言作为两大代表性的AI助手&#xff0c;在智能回复、语言准确性、知识库丰富度等方面各有千秋。本文将就这两位AI助手的特点进行深入比较&#xff0c;为…

OLAP引擎也能实现高性能向量检索,据说QPS高于milvus!

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 随着 LLM 技术应用及落地&#xff0c;数据库需要提高向量分析以及 AI 支持能力&#xff0c;向量数据库及向量检索等能力“异军突起”&#xff0c;迎来业界持续不断关…

深入解析阻塞队列BlockingQueue及源码(超详细)

一、基础概念 1.1 BlockingQueue BlockingQueue 是 java.util.concurrent 包提供的用于解决并发生产者 - 消费者问题的最有用的类。 1.1.1 队列类型&#xff1a; 无限队列 &#xff08;unbounded queue &#xff09; - 几乎可以无限增长 有限队列 &#xff08; bounded qu…

自创C++题目——风扇

预估难度 简单 题目描述 有一个风扇&#xff0c;它有个旋转叶片&#xff0c;每个旋转叶片的编号是&#xff0c;请输出它旋转后&#xff0c;中心点与地面的直线距离哪个叶片最近&#xff0c;输出此旋转叶片的编号。默认以“”的形式。 当时&#xff1a; 当或时&#xff0c;…

海康visionmaster-VM 嵌入:嵌入用户软件界面的方法

描述 环境&#xff1a;VM4.0.0 VS2015 及以上 现象&#xff1a;将 VM 整体嵌入到客户软件界面中&#xff1f; 解答 将 VM 软件整体嵌入到客户软件中&#xff0c;需要利用 Panel 控件&#xff0c;并且需要先启动 VM 软件&#xff0c;具 体代码如下&#xff1a; C# [DllImport(“…

linux NTP服务器配置

需求场景&#xff1a;局域网内多台服务器时间同步&#xff0c;保持一致 前提条件&#xff1a; 1&#xff0c;各服务器已正确安装NTP服务&#xff0c;查询命令如下&#xff1a; rpm -qa | grep ntp&#xff0c;若回显信息中包含ntp-4.2之类的&#xff0c;表示服务器上存在ntp…

电脑监控软件有哪些,那个好用?

在当今信息化时代&#xff0c;电脑已经成为企业和个人工作、生活中不可或缺的工具。 然而&#xff0c;随着网络的普及和电脑使用频率的增加&#xff0c;也带来了一些安全隐患和管理上的挑战。 为了更好地保护电脑安全、规范员工工作纪律&#xff0c;越来越多的企业和个人开始使…

day18 找树左下角的值 路径总和 路径总和Ⅱ 从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树

题目1&#xff1a;513 找树左下角的值 题目链接&#xff1a;513 找树左下角的值 题意 找出二叉树的最底层 最左边节点的值 (假设二叉树中至少有1个节点) 最底层节点确保是深度最大的叶子节点&#xff0c;最左边的节点却不一定是左孩子 递归遍历 深度最大的叶子节点最…