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

node.js

什么是Node.js

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

概念: 使用Node.js编写后端程序 // 支持前端工程化

​ 后端程序:提供接口和数据 ,网页资源

前端工程化:对代码压缩,转译,整合测试 自动部署(使用各种工具,提升效率)

Node.js为何能执行js?

浏览器能执行js代码,依靠的是内核中的v8引擎(c++程序)

Node.js是基于Chrome V8引擎 进行封装(运行环境)
区别:都支持ECMAScript标准语法,Node.js有独立的api (Node环境没有DOM和Bom)
在这里插入图片描述

Node.js安装

https://nodejs.org/dist/v18.17.0/ 下一步安装

注意:

1: 安装在非中文路径下

2.无需勾选安装其他的配置软件

检测是否安装成功

windows+r 打开cmd中断 输入node -v 命令 查看版本号

使用node.js

新建js文件,编写代码,在node环境下运行

在vscode集成终端中,输入node xxx.js 回车执行

console.log("hello")
for(let i = 0;i<3;i++){console.log(6)
}

fs模块-读写文件

模块:类似插件,封装了方法/属性

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

加载fs模块

const fs = require('fs')

写入文件内容

fs.writeFile('文件路径','写入内容',err=>{//写入后的回调函数
})

读取文件内容

fs.readFile('文件路径',(err,data)=>{//写入后的回调函数//data文件内容的Buffer数据流
})

path模块–路径处理

在node.js中,使用绝对路径

__dirname 模块内置变量(获取当前模块目录名)

案例-压缩前端 html

压缩前端代码,让浏览器加载网页更快

前端工程化:对代码压缩,转译,整合测试 自动部署(使用各种工具,提升效率)

需求:把回车符 和换行符去掉 进行压缩,写入到新html中

  • 读取html文件内容
  • 正则替换字符串
  • 写入到新的html文件中

public/index.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div class="box"><ul><li>111</li><li>222</li><li>333</li></ul></div>
</body></html>

public/index,js

console.log('123');
for (let i = 0; i < 4; i++) {console.log(i);
}

build.js

/* 
需求:把public/index.html里的回车符,和换行符去掉,进行压缩,写入到新dist/index.html中- 读取html文件内容
- 正则替换字符串
- 写入到新的html文件中需求:压缩js里的代码,并整合到html中一起运行
1.读取js文件内容
2.正则替换内容  
3.拼接html内容写入到 dist/index.html
*/const fs = require('fs')
const path = require('path')// 把public / index.html里的回车符,和换行符去掉,进行压缩,写入到新dist / index.html中
fs.readFile(path.join(__dirname, 'public', 'index.html'), (err, data) => {const htmlStr = data.toString()// console.log(htmlStr);// 正则替换字符串const resultStr = htmlStr.replace(/[\r\n]/g, '')// console.log(resultStr);fs.readFile(path.join(__dirname, 'public', 'index.js'), (err, data1) => {const jsStr = data1.toString()// console.log(jsStr);// 正则替换字符串const jsResultStr = jsStr.replace(/[\r\n]/g, '').replace(/console.log\('.+'\);/g, '')// console.log(jsResultStr);// 写入到新的html文件中fs.writeFile(path.join(__dirname, 'dist', 'index.html'), resultStr + jsResultStr, err => {if (err) { console.log(err); }else { console.log('压缩成功'); }})})
})

URL中的端口号

URL :统一资源定位符,简称网址,用于访问网络上的资源

端口号:标记服务器里对应服务程序(0-65535的整数)

http://xxxx.com:88/api/login

http模块–创建web服务

基于http模块编写程序,返回给请求方 ‘hello world’

  • 引入http模块,创建web服务对象
  • 监听request请求事件,对本次请求,做一些响应处理
  • 启动web服务监听对应端口号
  • 运行本服务在终端,用浏览器发起请求

案例:基于web服务,开发提供省份列表数据的接口,了解后端的代码工作过程

相关文章:

node.js

什么是Node.js Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境,使开发者可以搭建服务器端的JavaScript应用程序 概念: 使用Node.js编写后端程序 // 支持前端工程化 ​ 后端程序&#xff1a;提供接口和数据 &#xff0c;网页资源 ​ 前端工程化:对代码压缩&…...

【微信小程序创作之路】- 小程序远程数据请求、获取个人信息

【微信小程序创作之路】- 小程序远程数据请求、获取个人信息 第七章 小程序远程数据请求、获取个人信息 文章目录 【微信小程序创作之路】- 小程序远程数据请求、获取个人信息前言一、远程数据请求1.本地环境2.正式域名 二、获取用户个人信息1.展示当前用户的身份信息2.获取用…...

XML基础知识讲解

文章目录 1. xml简介2. xml快速入门3. xml的元素(标签)定义4. xml标签的命名规范5. xml的属性定义和注释6. 转义字符7. CDATA区8. xml的处理指令9. xml的约束 1. xml简介 XML&#xff08;eXtensible Markup Language&#xff09;是一种用于描述数据的标记语。 它以纯文本的方…...

(十二)大数据实战——hadoop集群之HDFS高可用自动故障转移

前言 本节内容主要介绍一下hadoop集群下实现HDFS高可用的自动故障转移&#xff0c;HDFS高可用的自动故障转移主要通过zookeeper实现故障的监控和主节点的切换。自动故障转移为 HDFS 部署增加了两个新组件&#xff1a;ZooKeeper 和 ZKFailoverController &#xff08;ZKFC&…...

Ubuntu下载deb包及其依赖包

一、简介 有时我们需要在离线环境使用提前准备好的deb包&#xff0c;然后只需要在新机器使用dpkg -i安装即可。 二、命令 apt-get download $(apt-rdepends &#xff08;需要下载的包&#xff0c;可以有多个&#xff09; | grep -v "^ " | sed s/debconf-2.0/debco…...

Ubuntu中解/压缩命令

一、zip文件 #解压 unzip filename.zip #压缩 zip filename.zip dirname # 递归处理&#xff0c;将指定目录下的所有文件和子目录一并压缩 zip -r filename.zip dirname 二、tar文件 # 解压 tar xvf FileName.tar # 压缩&#xff0c;将DirName和其下所有文件(夹)打包非压…...

剑指 Offer 12. 矩阵中的路径(回溯 DFS)

文章目录 题目描述思路分析完整代码 题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff…...

iceberg对比hive优势

1.事务性 从事务性上来说&#xff0c;iceberg具有更高的数据质量。 因为iceberg本质是一种table format&#xff0c;屏蔽了底层的存储细节&#xff0c;写入数据时候需要严格按照schema写入。而hive可以先写入底层数据&#xff0c;然后使用load partition的方式来加载分区。这样…...

ProgressBar基本使用

作用&#xff1a;进度条&#xff0c;用于展示某个任务的完成情况&#xff0c; 常用属性&#xff1a; 设定进度条的最大、最小值、自增步长 常用事件&#xff1a; 后台代码&#xff1a; private void progressBar1_Click(object sender, EventArgs e){Thread t;//使用线程执行…...

spring boot java使用XEasyPdf生成pdf文档

java使用XEasyPdf生成pdf文档 spring boot java使用XEasyPdf生成pdf文档第一步导入maven坐标,pom.xml全部贴上第二步编写代码代码实战&#xff1a; spring boot java使用XEasyPdf生成pdf文档 第一步导入maven坐标,pom.xml全部贴上 <?xml version"1.0" encoding…...

自定义elementui的主题

通常情况下&#xff0c;我们使用elementui框架的时候默认组件的主题都是白色的&#xff0c;比如&#xff1a; 但是如果想自定义主题&#xff0c;改变主题颜色&#xff0c;以及各种默认颜色&#xff0c;其实也不难&#xff1a; 配置默认主题&#xff0c;选好后点击下载 在vu…...

eNSP interface g0/0/0 报错解决办法

文章目录 1 报错截图2 解决办法2.1 排查设备是否有 GM 接口2.2 更换适合的路由器&#xff0c;并验证 1 报错截图 2 解决办法 2.1 排查设备是否有 GM 接口 查看下设备是否支持 GM 接口&#xff08;GigabitEthernet&#xff09; 方式一&#xff1a;右键路由器设备 - 设置 - 查看…...

Metric3D:Towards Zero-shot Metric 3D Prediction from A Single Image

参考代码&#xff1a;Metric3D 介绍 在如MiDas、LeReS这些文章中对于来源不同的深度数据集使用归一化深度作为学习目标&#xff0c;则在网络学习的过程中就天然失去了对真实深度和物体尺寸的度量能力。而这篇文章比较明确地指出了影响深度估计尺度变化大的因素就是焦距 f f f…...

k8s ingress获取客户端客户端真实IP

背景 在Kubernetes中&#xff0c;获取客户端真实IP地址是一个常见需求。这是因为在负载均衡架构中&#xff0c;原始请求的源IP地址会被替换成负载均衡器的IP地址。 获取客户端真实IP的需求背景包括以下几点&#xff1a; 安全性&#xff1a;基于客户端IP进行访问控制和认证授…...

Mysql主从搭建 基于DOCKER

创建目录 #主节点目录 mkdir -p /home/data/master/mysql/#从节点目录 mkdir -p /home/data/slave/mysql/创建配置文件 # 主节点配置 touch /home/data/master/mysql/my.cnf# 从节点配置 touch /home/data/slave/mysql/my.cnf编辑配置文件 主节点配置文件 vim /home/data/m…...

Leaflet入门,地图平移跳转到指定位置和飞行到指定位置效果

前言 本章讲解如何Leaflet如何实现操作地图平移到指定位置或者飞行到指定位置效果。 vue如何使用Leaflet vue2如何使用:《Leaflet入门,如何使用vue2-leaflet实现vue2双向绑定式的使用Leaflet地图,以及初始化后拿到leaflet对象,方便调用leaflet的api》 vue3如何使用:《L…...

iMX6ULL驱动开发 | 让imx6ull开发板支持usb接口FC游戏手柄

手边有一闲置的linux开发板iMX6ULL一直在吃灰&#xff0c;不用来搞点事情&#xff0c;总觉得对不住它。业余打发时间就玩起来吧&#xff0c;总比刷某音强。从某多多上买来一个usb接口的游戏手柄&#xff0c;让开发板支持以下它&#xff0c;后续就可以接着在上面玩童年经典游戏啦…...

Java 实现 SCP 携带密码拷贝文件

背景说明 涉及通过程序进行机器间的文件Copy的场景&#xff0c;我们一般会使用ssh连接机器&#xff0c;通过scp命令进行文件copy。 此种方案的前提是&#xff1a;机器间事先要配置免密码互通。 但是&#xff0c;如果客户现场机器数量过多&#xff0c;配置免密操作比较麻烦&a…...

Flink CEP(三)pattern动态更新

线上运行的CEP中肯定经常遇到规则变更的情况&#xff0c;如果每次变更时都将任务重启、重新发布是非常不优雅的。尤其在营销或者风控这种对实时性要求比较高的场景&#xff0c;如果规则窗口过长&#xff08;一两个星期&#xff09;&#xff0c;状态过大&#xff0c;就会导致重启…...

抽象工厂模式(C++)

定义 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”&#xff0c;无需指定它们具体的类。 使用场景 在软件系统中&#xff0c;经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化&#xff0c;往往存在更多系列对象的创建工作。如何应对这种…...

嵌入式Linux启动优化实战:从U-Boot到应用的全链路加速

1. 项目概述与优化价值作为一名在嵌入式领域摸爬滚打了十多年的老工程师&#xff0c;我深知产品启动速度对于用户体验和系统性能的“第一印象”有多重要。尤其是在像全志T113这类面向工控、物联网、智能终端的应用处理器平台上&#xff0c;从按下电源键到应用界面就绪&#xff…...

【UE5】数字人实战:从动捕到物理发型的全链路解析

1. 数字人制作全流程概览 数字人制作是一个从建模到最终呈现的完整技术链条。在UE5引擎中&#xff0c;我们可以将动捕数据、表情捕捉和物理发型等模块有机整合&#xff0c;打造出逼真可交互的数字角色。整个流程可以划分为三个核心环节&#xff1a;表情捕捉&#xff08;LiveLin…...

网络安全十大常见漏洞|原理 + 危害 + 防御,一篇讲透✅

一、弱口令【文末福利】 产生原因 与个人习惯和安全意识相关&#xff0c;为了避免忘记密码&#xff0c;使用一个非常容易记住 的密码&#xff0c;或者是直接采用系统的默认密码等。 危害 通过弱口令&#xff0c;攻击者可以进入后台修改资料&#xff0c;进入金融系统盗取钱财…...

3步打造专属Windows系统:tiny11builder精简方案终极指南

3步打造专属Windows系统&#xff1a;tiny11builder精简方案终极指南 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 在当今数字时代&#xff0c;你是否经常感觉Wi…...

LaTeX documentclass命令深度解析:从基础语法到高级定制

1. LaTeX documentclass命令入门指南 第一次接触LaTeX时&#xff0c;我盯着那个神秘的\documentclass命令发呆了半小时。这个看似简单的命令&#xff0c;实际上掌控着整个文档的"基因"。就像盖房子前要确定是建公寓楼还是独栋别墅&#xff0c;documentclass决定了文档…...

告别Selenium!用DrissionPage的ChromiumPage和SessionPage,5分钟搞定登录与爬虫

告别Selenium&#xff01;用DrissionPage的ChromiumPage和SessionPage&#xff0c;5分钟搞定登录与爬虫 在Python自动化测试和爬虫开发领域&#xff0c;Selenium曾经是无可争议的王者。但随着时间的推移&#xff0c;开发者们逐渐意识到Selenium的局限性——复杂的配置、缓慢的执…...

LRC歌词制作终极指南:轻松创建专业级同步歌词的免费工具

LRC歌词制作终极指南&#xff1a;轻松创建专业级同步歌词的免费工具 【免费下载链接】lrc-maker 歌词滚动姬&#xff5c;可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 你是否曾经在听歌时想要制作属于自己的歌词文件…...

告别乱码困扰:3步完成GBK到UTF-8编码转换的终极指南

告别乱码困扰&#xff1a;3步完成GBK到UTF-8编码转换的终极指南 【免费下载链接】GBKtoUTF-8 To transcode text files from GBK to UTF-8 项目地址: https://gitcode.com/gh_mirrors/gb/GBKtoUTF-8 您是否曾遇到过这样的场景&#xff1a;打开一个中文文档&#xff0c;屏…...

字节会师何恺明!开源连续扩散语言模型Cola DLM

一水 发自 凹非寺量子位 | 公众号 QbitAI大语言模型真的只能走“预测下一个token”的路子吗&#xff1f;继何恺明之后&#xff0c;字节也给出了同样的回答&#xff1a;NO。并且&#xff0c;两边都不约而同地盯上了同一个方向——在连续语义空间中建模语言。更关键的是&#xff…...

避坑指南:Vivado增量综合的‘甜蜜区’与‘雷区’——从日志文件看何时该用、何时该弃

Vivado增量综合实战决策手册&#xff1a;如何精准识别高效区间与风险边界 在FPGA开发领域&#xff0c;时间就是竞争力。当项目进入迭代优化阶段&#xff0c;每次按下综合按钮后的等待时间&#xff0c;都可能成为团队效率的隐形杀手。Vivado的增量综合功能就像一把双刃剑——用对…...