网站建设开发员/姓名查询

网站建设开发员,姓名查询,最新网站开发语言,做彩票网站要多大服务器01.Node.js 讲解 什么是 Node.js,有什么用,为何能独立执行 JS 代码,演示安装和执行 JS 文件内代码 Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,因为这个特点,它可以用来编写服务器后端…

01.Node.js 讲解

什么是 Node.js,有什么用,为何能独立执行 JS 代码,演示安装和执行 JS 文件内代码

  1. Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,因为这个特点,它可以用来编写服务器后端的应用程序

  2. Node.js 作用除了编写后端应用程序,也可以对前端代码进行压缩,转译,整合等等,提高前端开发和运行效率

  3. Node.js 基于Chrome V8 引擎封装,独立执行 JS 代码,但是语法和浏览器环境的 V8 有所不同,没有 document 和 window 但是都支持 ECMAScript 标准的代码语法

  4. 想要得到 Node.js 需要把这个软件安装到电脑,在素材里有安装程序(window 和 mac 环境的)参考 PPT 默认下一步安装即可

  5. Node.js 没有图形化界面,需要使用 cmd 终端命令行(利用一些命令来操控电脑执行某些程序软件)输入,node -v 检查是否安装成功

/*** 目标:编写 js 代码,用 node 命令执行* 终端作用:敲击命令,调用对应程序执行* 终端打开:目标文件->右键->在集成终端中打开* 命令:node xxx.js (注意路径)*/
for (let i = 0; i < 3; i++) {console.log(i)   
}

02.fs模块 读写文件

  1. 模块:类似插件,封装了方法和属性供我们使用

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

/*** 目标:使用 fs 模块,读写文件内容* 语法:* 1. 引入 fs 模块* 2. 调用 writeFile 写入内容* 3. 调用 readFile  读取内容*/
const fs = require('fs') // 引入 fs 模块fs.readFile('./text.txt',(err,data)=>{   // 调用 readFile  读取内容  data 是文件内容的 Buffer 数据流if (err) {console.log(err)        } else {// 读取出来的数据默认是Buffer数据流,得toString()转成字符串,用户能看懂console.log(data.toString())        }
})
// fs.writeFile('写入的文件','写入的内容',回调函数(err))
// 写入的数据,新的替换旧的 会覆盖原文件的所有内容;没有这个文件则自动创建这个文件
fs.writeFile('./text11.txt','我是鸿蒙6期的~~~',err=>{ // 写入内容console.log('恭喜写入成功')    
})

03.path 模块(绝对路径)

  • Node.js 执行 JS 代码时,代码中的路径都是以终端所在文件夹出发查找相对路径,而不是以我们认为的从代码本身出发,会遇到问题,所以在 Node.js 要执行的代码中,访问其他文件,建议使用绝对路径
  • path模块内置变量 __dirname配合 path.join() 来得到绝对路径使用
/*** 目标:读取 test.txt 文件内容* 注意:代码中,使用绝对路径* 原因:Node.js 执行时会以终端所在文件夹作为相对路径,去拼接代码中路径使用(导致找不到目标文件)* 解决:使用 path.join() 和 __dirname 来填写要查找的目标文件绝对地址*/const fs = require('fs')
const path = require('path')  // 引入path模块
fs.readFile(path.join(__dirname,'..','text.txt'),(err,data)=>{  // 读取if (err) {console.log(err)        } else {console.log(data.toString())        }
})

04.案例 压缩前端的html

/*** 目标一:压缩 html 里代码* 需求:把 public/index.html 里的,回车/换行符去掉,写入到 dist/index.html 中*  1.1 读取 public/index.html 内容*  1.2 使用正则替换内容字符串里的,回车符\r 换行符\n*  1.3 确认后,写入到 dist/index.html 内*/
// 读取public里面的index.html→格式化压缩→压缩完的代码写入到dist里面的newIndex.html
// 读取文件fs模块+路径path
const fs = require('fs')
const path = require('path')
// 读取原html文件
// fs.readFile(文件,回调函数)
fs.readFile(path.join(__dirname, 'public', 'index.html'), (err, data) => {if (err) console.log(err)//  else console.log(data.toString())        const htmlStr = data.toString() // 代码→去掉回车换行\r\n→用正则找到\r\n替换成空字符const newStr = htmlStr.replace(/[\r\n]/g, '') // g表示替换所有的\r\nconsole.log(newStr)// 写入到新的html文件//  fs.writeFile(文件路径,要写入的内容,回调函数)fs.writeFile(path.join(__dirname, 'dist', 'newIndex.html'), newStr, (err) => {if (err) console.log(err)else console.log('恭喜,压缩成功')})
})

05.案例 压缩前端的js(压缩 js 里代码,并整合到 html 中一起运行)

/*** 目标二:压缩 js 里代码,并整合到 html 中一起运行*  2.1 读取 public/index.js 内容*  2.2 使用正则替换内容字符串里的,回车符\r 换行符\n 打印语句console.log('xxx');*  2.3 确认后,拼接 html 内容写入到 dist/index.html 内*/
const fs = require('fs')
const path = require('path')
// 读取html文件
fs.readFile(path.join(__dirname, 'public', 'index.html'), (err, data) => {if (err) console.log(err)// else console.log(data.toString())const htmlStr = data.toString()const newStr = htmlStr.replace(/[\n\r]/g, '') //已经去掉\r\n的html代码// console.log(newStr) // 读取html成功// 读取js代码fs.readFile(path.join(__dirname, 'public/index.js'), (err, data) => {if (err) console.log(err)// else console.log(data.toString())//  有script标签再放js代码const myjs = data.toString()//代码→去掉\r\n;去掉log输出→把html和js拼一起写入到新html文件const jsStr = myjs.replace(/[\r\n]/g, '').replace(/console.log\('.+?'\);/g, '')// console.log(jsStr)      const newjs = `<script>${jsStr}</script>`  //带script标签的js// 把html文件和js一起写到其他文件夹// fs.writeFile(文件路径,写入的内容,回调函数)把html代码和js代码凭借到一起fs.writeFile(path.join(__dirname, './dist/new.html'), newStr + newjs, (err) => {if (err) console.log(err)else console.log('成功')})})
})

06.URL 端口号

/*** 目标:了解端口号的作用* 端口号:用于区分服务器中的不同服务程序* 取值范围:0-65535* 注意:0-1023 和一些特定端口号是被占用的,我们自己编写服务程序请避开使用*  1. URL 是统一资源定位符,简称网址,用于访问网络上的资源2. 端口号的作用:标记服务器里对应的服务程序,值为(0-65535 之间的任意整数)3. 注意:http 协议,默认访问的是 80 端口4. Web服务:一个程序,用于提供网上信息浏览功能5. 注意:0-1023 和一些特定的端口号被占用,我们自己编写服务程序请避开使用 * * */

07.http模块-创建Web服务

/*** 目标:使用 http 模块,创建 Web 服务* Web服务:一个程序,用于提供网上信息浏览服务* 步骤:*  1. 引入 http 模块,创建 Web 服务对象*  2. 监听 request 事件,对本次请求,做一些响应处理*  3. 启动 Web 服务监听对应端口号*  4. 运行本服务在终端,用浏览器访问 http://localhost:3000/ 发起请求(localhost 是本机域名)* 注意:终端里启动了服务,如果想要终止按 ctrl c 停止即可*/
// 1.引入 http 模块,创建 Web 服务对象
const http = require('http')
// 创建web服务
const server = http.createServer()
// 发请求,返回响应结果
// server.on('request事件',回调函数)
server.on('request',(req,res)=>{// 设置响应头,内容类型,普通 html 文本:编码格式为 utf-8res.setHeader('Content-Type','text/html;charset=utf-8')res.end('你好,欢迎访问')// res.end('hallo')
})// 启动 Web 服务监听对应端口号
// server.listen(端口号,回调函数)
server.listen(6656,()=>{console.log('web 服务已启动')})

08.web服务 - 支持中文字符

/*** 目标:Web 服务支持中文字符* 问题:返回响应内容为,中文字符,浏览器无法正确显示* 原因:Web 服务没有设置响应头,指定说明内容类型和编码格式* 解决:设置响应头内容类型,让请求方能正确解析* 语法:res.setHeader('Content-Type', 'text/html;charset=utf-8')*/const http = require('http')
const server = http.createServer()
server.on('request', (req, res) => {res.end('你好,亲爱的世界') 
})
server.listen(3000, () => {console.log('Web 服务启动了')
})

09.案例 - 省份列表接口

/*** 目标:基于 Web 服务,开发-省份列表数据接口* 步骤:*  1. 创建 Web 服务*  2. 使用 req.url 获取请求的资源路径,读取 json 文件数据返回*  3. 其他请求的路径,暂时返回不存在的提示*  4. 运行 Web 服务,用浏览器请求地址查看效果*/
const fs = require('fs')const http =  require('http')
const path = require('path')//  创建web服务
const server = http.createServer()// 3.发请求,监听请求,返回响应结果
server.on('request',(req,res)=>{
if(req.url ==='/api/provin'){// console.log('查询地址成功') // 读取json文件里面的内容,响应给用户→ 中文 → 支持中文  → 设置响应头内容类型fs.readFile(path.join(__dirname,'data/province.json'),(err,data)=>{res.setHeader('content-type','application/json;charset=utf-8')res.end(data.toString()) //响应给用户})
}else{// console.log('请求地址错误,查无此地址')res.setHeader('content-type','text/html;charset=utf-8')res.end('不好意思,您访问的资源不存在') //响应给用户
}
})// 4.监听某个端口号
server.listen(3333,()=>{console.log('服务器启动成功')})

10.案例 - 城市列表接口

/*** 目标:基于 Web 服务,开发-城市列表数据接口* 步骤:*  1. 判断 req.url 资源路径+查询字符串,路径前缀匹配/api/city*  2. 借助 querystring 模块的方法,格式化查询参数字符串*  3. 读取 city.json 城市数据,匹配省份名字下属城市列表*  4. 返回城市列表,启动 Web 服务测试*/
const fs = require('fs')
const path = require('path')
const http = require('http')
// const { queryObjects } = require('v8')
const qs = require('querystring')
//  创建web服务
const server = http.createServer()// 03.发请求监听请求,返回响应结果
server.on('request',(req,res)=>{//判断条件-url是否以/api/city开头→是以这个开头的,拿到pname的值,去查找数据if(req.url.startsWith('/api/city')){console.log('地址正确')const str =req.url.split('?')[1]const pname = qs.parse(str).pname// console.log(pname)fs.readFile(path.join(__dirname,'data/city.json'),(err,data)=>{const result = JSON.parse(data.toString())[pname] // 数组,不能直接返回数组,返回jsonres.setHeader('content-type','application/json;charset=utf-8')res.end(JSON.stringify(result))})}else{res.setHeader('content-type','application/json;charset=utf-8')res.end('资源不存在')}
})// 04.监听某个端口
server.listen(3333,()=>{console.log('服务启动成功')})

11.案例-浏览时钟

/*** 目标:编写 web 服务,监听请求的是 /index.html 路径的时候,返回 dist/index.html 时钟案例页面内容* 步骤:*  1. 基于 http 模块,创建 Web 服务*  2. 使用 req.url 获取请求资源路径,并读取 index.html 里字符串内容返回给请求方*  3. 其他路径,暂时返回不存在提示*  4. 运行 Web 服务,用浏览器发起请求*/
const http = require('http')
const fs = require('fs')
const path = require('path')
// 创建web服务
const server = http.createServer()// 发请求监听请求,返回响应结果
server.on('request',(rep,res)=>{if(rep.url === '/index.html'){fs.readFile(path.join(__dirname,'dist/index.html'),(err,data)=>{res.setHeader('content-type','text/html;charset=utf-8')res.end(data.toString())})}else{res.setHeader('content-type','text/html;charset=utf-8')res.end('访问的资源不存在')}
})// 
server.listen(3333,()=>{console.log('服务启动成功')
})

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

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

相关文章

又要考试了

一、实现无名管道练习&#xff1a;父进程写入管道&#xff0c;子进程读取管道数据。 #include<myhead.h> int main(int argc, const char *argv[]) {int fd[2];char buff[1024]"王吕阳&#xff0c;崔庆权别卷了";char s[1024];if(pipe(fd)-1){perror("pi…

LoadBalancer负载均衡和Nginx负载均衡区别理解

LoadBalancer和Nginx都是用来做负载均衡用的&#xff0c;那二者有什么区别呢&#xff1f; Nginx服务器端的负载均衡&#xff1a; 所有请求都先发到nginx&#xff0c;然后再有nginx转发从而实现负载均衡。LoadBalancer是本地的负载均衡&#xff1a; 它是本地先在调用微服务接口…

Technitium DNS Server的基本使用1(创建主区域,A记录,开启递归查询,递归到114.114.114.114)

Technitium DNS Server Technitium DNS Server搭建 搭建请看博主的上篇博客&#xff0c;内外网的方法都有 链接: 内网搭建Technitium DNS Server详细教程 登陆进去是以下界面 这个界面主要是监控&#xff0c;有访问的时候就会有波动 创建主区域&#xff0c;A记录 写上主区…

Git简介和特点

目录 一、Git简介 二、Git特点 1.集中式和分布式 (1)集中式版本控制系统 (2)分布式版本控制系统 2.版本存储方式的差异 (1)直接记录快照&#xff0c;而非差异比较 3.近乎所有操作都是本地执行 一、Git简介 Git是目前世界上最先进的的分布式控制系统&#xff08;没有之一…

CSS学习记录15

CSS下拉菜单 使用CSS创建可悬停的下拉列表。 下拉式式菜单 .dropdown类使用position:relative,当我们希望将下拉内容放置在下拉按钮的正下方(使用position:absolute)时&#xff0c;需要使用该类。 .dropdown-content 类保存实际的下拉内容。默认情况下它是隐藏的&#xff0…

RabbitMQ全局流量控制

RabbitMQ全局流量控制 流控机制流控是对什么进行控制&#xff1f;rabbitmq进程邮箱流控机制是什么&#xff1f; 流控原理流控原理流程 流控状态显示流控对象流控机制对象主要进程各进程状态情形分析 性能提升提升队列性能方式 当消息积压时&#xff0c;消息会进入到队列深处&am…

大数据平台

大数据行业应用持续升温&#xff0c;特别是企业级大数据市场正在进入快速发展时期。越来越多的企业期望实现数据孤岛的打通&#xff0c;整合海量的数据资源&#xff0c;挖掘并沉淀有价值的数据&#xff0c;进而驱动更智能的商业。随着公司数据爆发式增长&#xff0c;原有的数据…

鸿蒙生态的崛起:开发实践、认证路径与激励策略

目录 前言 鸿蒙生态能力和行业解决方案 1、鸿蒙创新能力 2、鸿蒙行业解决方案 中软鸿蒙生态业务布局 1、深度参与鸿蒙生态建设 2、提供一站式鸿蒙生态服务 &#xff08;1&#xff09;服务目录 &#xff08;2&#xff09;改造过程的关键点 &#xff08;3&#xff09;鸿…

指令遵循数据集IFEval介绍:中英双语

IFEval数据集介绍&#xff1a;评估大语言模型指令遵循能力 1. IFEval数据集提出的问题 随着大语言模型&#xff08;如GPT-4、PaLM 2等&#xff09;在自然语言任务中的广泛应用&#xff0c;模型的指令遵循能力&#xff08;Instruction Following&#xff09;成为一个重要评估指…

基于Qt的上位机通讯库

1.前言 做Qt上位机已经有两年的时间了&#xff0c;上位机主要是和下游器件打交道的&#xff0c;通过modbus、tcp、串口等协议来控制这些设备&#xff0c;通过一定的时序控制&#xff0c;完成所需要的工作流程。这其中最重要的就是通讯了&#xff0c;上位机开发过程中的相当一部…

docker安装mysql5.7

1、宿主机创建映射目录 mkdir -p /data/mysql/log mkdir -p /data/mysql/data mkdir -p /data/mysql/conf这里我放在了/data/mysql目录下 2、拉取mysql镜像 docker pull mysql:5.7注意是5.7版本&#xff0c;如果是8版本操作会略有不同&#xff0c;下篇文章介绍安装8版本的操…

SQLServer利用QQ邮箱做SMTP服务器发邮件

环境 Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) SQL Server Management Studio 15.0.18384.0 SQL Server 管理对象 (SMO) 16.100.46367.54 Microsoft .NET Framework 4.0.30319.42000 操作系统 Windows Server2019 ———————————————— 前言&#xf…

好用的网站-直接复制的文字图标不需要引入

分享一个前端不需要引入的&#xff0c;可以直接复制的图标网站 直接复制放在代码中 特殊符号大全&#xff0c;可直接复制黏贴 (shijianchuo.net)

修改uniapp下拉刷新圆圈颜色

直接看图 修改前就是常规的绿色 自定义更符合我们的软件 直接说方法 修改 在App.vue的style样式里添加一行 .uni-page-refresh--refreshing .uni-page-refresh__path{stroke:#FF2442; }我是通过 不执行 uni.stopPullDownRefresh(); 下拉刷新 之后通过F12看出来的 希望可以帮…

Maven插件打包发布远程Docker镜像

dockerfile-maven-plugin插件的介绍 dockerfile-maven-plugin目前这款插件非常成熟&#xff0c;它集成了Maven和Docker&#xff0c;该插件的官方文档地址如下&#xff1a; 地址&#xff1a;https://github.com/spotify/dockerfile-maven 其他说明&#xff1a; dockerfile是用…

12.11数据结构-图

无向完全图&#xff1a;在无向图中&#xff0c;如果任意两个顶点之间都存在边&#xff0c;则称该图为无向完全图。 有向完全图&#xff1a;在有向图中&#xff0c;如果任意两个顶点之间都存在方向相反的两条弧&#xff0c;则称该图为有向完全图。 含有n个顶点的无向完全图有…

Intel(R) Iris(R) Xe Graphics安装Anaconda、Pytorch(CPU版本)

一、Intel(R) Iris(R) Xe Graphics安装Anaconda 下载网址&#xff1a;https://repo.anaconda.com/archive/ 双击Anaconda3-2024.10-1-Windows-x86_64&#xff0c;一直下一步&#xff0c;选择安装的路径位置&#xff0c;一直下一步就安装完成了。打开Anaconda PowerShell Promp…

git使用教程(超详细)-透彻理解git

一.核心基础 核心概念有六个 首先请把与svn有关的一切概念暂时从你的脑海中移除掉&#xff0c;我们要重新认识本文所讲述的所有概念。 1.worktree worktree是一个目录&#xff0c;你在这里对文件进行增加、删除、修改。也就是我们常说的工作区。在git中worktree必须要与一个…

简单的Java小项目

学生选课系统 在控制台输入输出信息&#xff1a; 在eclipse上面的超级简单文件结构&#xff1a; Main.java package experiment_4;import java.util.*; import java.io.*;public class Main {public static List<Course> courseList new ArrayList<>();publi…

java全栈day16--Web后端实战(数据库)

一、数据库介绍 二、Mysql安装&#xff08;自行在网上找&#xff0c;教程简单&#xff09; 安装好了进行Mysql连接 连接语法&#xff1a;winr输入cmd&#xff0c;在命令行中再输入mysql -uroot -p密码 方法二&#xff1a;winr输入cmd&#xff0c;在命令行中再输入mysql -uroo…