Node.js是js语言在服务器编译运行的环境,什么是IP和域名
一句话结论
Node.js 不是语言也不是框架,而是一个让 JavaScript 能运行在服务器端的“环境”(类似 Python 的解释器)。JavaScript 是语言,Node.js 是它的“执行工具”。
🌰 用 Python 类比理解
-
Python 和 JavaScript 的关系:
两者都是编程语言。Python 用解释器(如 CPython)运行代码,JavaScript 用浏览器或 Node.js 运行代码。 -
Node.js vs Python 解释器:
- Python 解释器:直接运行
.py
文件,同步处理任务(默认按顺序执行,遇到耗时任务会卡住)。 - Node.js:运行
.js
文件,异步处理任务(遇到耗时任务不卡住,继续执行其他代码)。
- Python 解释器:直接运行
-
举个代码例子:
场景:同时处理用户请求 + 读取文件。# Python(同步代码,假设用 Flask 框架) from flask import Flask import timeapp = Flask(__name__)# 处理用户请求(同步) @app.route('/') def hello():time.sleep(2) # 模拟耗时操作(比如读数据库)return "Hello World!"# 另一个耗时任务(比如读文件) def read_file():with open('bigfile.txt', 'r') as f:content = f.read() # 读文件时,整个程序卡住!print("File read!")# 同时执行会卡住:必须先处理完请求,才能读文件 if __name__ == '__main__':app.run(threaded=True) # 多线程缓解,但仍有性能瓶颈read_file()
// Node.js(异步代码,用 Express 框架) const express = require('express'); const fs = require('fs'); const app = express();// 处理用户请求(异步) app.get('/', (req, res) => {setTimeout(() => { // 模拟耗时操作res.send('Hello World!');}, 2000); });// 另一个耗时任务(读文件) fs.readFile('bigfile.txt', (err, data) => {if (err) throw err;console.log('File read!'); });// 同时执行不会卡住:请求和读文件并行处理! app.listen(3000);
关键区别:
- Python(默认同步):处理请求时,读文件必须等待。
- Node.js(异步):处理请求时,读文件在后台执行,互不阻塞。
📌 核心概念澄清
概念 | Node.js | Python |
---|---|---|
本质 | JavaScript 的运行时环境 | 编程语言 + 解释器 |
运行方式 | 异步非阻塞(默认) | 同步阻塞(默认) |
框架举例 | Express.js, Koa | Django, Flask |
擅长领域 | 高并发 I/O 操作 | 数据处理、机器学习 |
性能短板 | CPU 密集型任务(如图像处理) | 高并发场景(同步代码) |
🌟 总结对比
-
Node.js 是什么:
- 它是 JavaScript 的“服务器端运行环境”(类似 Python 解释器)。
- 核心能力是异步非阻塞,适合处理大量并发请求(如 API 服务、实时聊天)。
-
和 Python 的区别:
- 语言层面:JavaScript 和 Python 是两种不同的编程语言。
- 执行模型:Node.js 天生异步,Python 默认同步(但可通过
asyncio
实现异步)。 - 应用场景:
- Node.js:轻量级、高并发的服务(如 REST API、实时应用)。
- Python:计算密集型任务(如数据分析、AI 训练)、传统后端服务。
💡 小白记忆法
- Node.js = JavaScript 的“服务器版启动器”
(让 JS 从网页特效变成能做后端服务的工具)。 - Node.js vs Python:
- 想做个实时聊天室?选 Node.js(高效处理并发)。
- 想分析数据或训练 AI 模型?选 Python(生态丰富### 一句话总结
环境 = 代码运行的地方 + 能用的功能
浏览器环境(如 Chrome)和 Node.js 环境(服务器)为 JavaScript 提供了不同的“工具箱”和运行规则。
🌰 浏览器 vs Node.js 代码对比
场景 1:操作网页元素(浏览器专属)
// 浏览器环境代码(前端)
// 功能:点击按钮后修改网页文字
document.getElementById('myButton').addEventListener('click', () => {document.getElementById('text').innerHTML = 'Hello 浏览器!'; // 操作 DOM
});
- 关键区别:
document
、window
、DOM
是浏览器提供的“工具箱”,Node.js 中不存在这些对象。- 浏览器中的 JavaScript 只能操作网页内容,无法直接读写服务器文件或数据库。
场景 2:读写文件(Node.js 专属)
// Node.js 环境代码(后端)
// 功能:读取服务器上的文件
const fs = require('fs'); // 引用文件系统模块fs.readFile('data.txt', 'utf8', (err, data) => {if (err) throw err;console.log('文件内容:', data); // 输出到服务器终端
});
- 关键区别:
fs
(文件系统)、http
(网络服务)是 Node.js 提供的“工具箱”,浏览器中无法使用。- Node.js 中的 JavaScript 可以操作服务器资源,但无法直接修改网页内容。
🛠️ 环境的核心差异
能力 | 浏览器环境 | Node.js 环境 |
---|---|---|
操作对象 | 网页 DOM、浏览器窗口 | 服务器文件、数据库、网络请求 |
全局对象 | window 、document | global 、process |
典型用途 | 网页交互、动画、表单验证 | API 接口、数据库读写、定时任务 |
代码限制 | 不能直接访问服务器文件系统 | 不能直接操作浏览器 DOM |
代码入口 | 通过 HTML 的 <script> 引入 | 通过终端命令 node app.js 执行 |
🌐 代码交互示例
完整流程:浏览器 + Node.js 协作
- 浏览器端代码(前端):发送请求获取数据
// 浏览器中通过 JavaScript 请求服务器数据
fetch('http://localhost:3000/api/data').then(response => response.json()).then(data => {document.getElementById('result').innerHTML = data.message; // 修改网页});
- Node.js 代码(后端):提供数据接口
// Node.js 中创建 API 服务
const express = require('express');
const app = express();app.get('/api/data', (req, res) => {res.json({ message: '数据来自 Node.js 服务器!' }); // 返回数据
});app.listen(3000, () => {console.log('服务器运行在 http://localhost:3000');
});
💡 理解“环境”的本质
-
工具箱不同:
- 浏览器环境提供操作网页的 API(如
document.getElementById
)。 - Node.js 环境提供操作服务器的 API(如
fs.readFile
)。
- 浏览器环境提供操作网页的 API(如
-
运行规则不同:
- 浏览器中 JS 通过事件循环处理用户点击、网络请求等前端交互事件。
- Node.js 中 JS 通过事件循环处理服务器请求、文件读写等后端任务。
-
代码隔离性:
- 浏览器中的 JS 代码运行在用户电脑上,受安全限制(不能删用户文件)。
- Node.js 的 JS 代码运行在服务器上,拥有服务器操作权限(可读写文件、连接数据库)。
🧩 总结一句话
- 浏览器环境:JavaScript 的“网页版工具箱” —— 负责让网页动起来。
- Node.js 环境:JavaScript 的“服务器版工具箱” —— 负责处理数据、连接数据库、响应请求。
- 两者共用 JavaScript 语言,但根据环境不同,能做的事情完全不同。
🌟 一句话解释 DOM
DOM = 网页的“乐高说明书”
浏览器把 HTML 代码(比如 <div>、<button>
)转换成一个个可操作的“积木块”(对象),DOM 就是描述这些积木如何组装和修改的规则。你可以用 JavaScript 通过 DOM 增删改查网页内容。
📚 前端核心概念清单(通俗版)
1️⃣ HTML(骨架)
- 是什么:网页的“骨架”,用标签定义结构(比如标题、按钮、输入框)。
- 例子:
<h1>我是标题</h1> <button>点我</button>
2️⃣ CSS(衣服和化妆)
- 是什么:控制网页的样式(颜色、大小、布局)。
- 例子:
h1 { color: red; } /* 标题变红 */ button { padding: 10px; } /* 按钮变大 */
3️⃣ JavaScript(动作导演)
- 是什么:让网页动起来(点击按钮弹窗、提交表单、加载数据)。
- 例子:
document.querySelector('button').onclick = () => {alert('你点了我!'); // 点击按钮弹出提示 };
4️⃣ DOM(积木操作手册)
- 是什么:浏览器把 HTML 标签变成 JavaScript 能操作的“对象树”。
- 关键操作:
- 查找积木:
document.getElementById('id')
- 修改积木:
element.textContent = '新文字'
- 添加积木:
parent.appendChild(newElement)
- 查找积木:
5️⃣ 事件(用户动作监听器)
- 是什么:用户的操作(点击、滚动、输入)会触发 JavaScript 代码。
- 例子:
// 当用户滚动页面时触发 window.addEventListener('scroll', () => {console.log('你滚动了!'); });
6️⃣ AJAX(偷偷发请求)
- 是什么:不刷新页面,偷偷和服务器交换数据(比如加载新内容)。
- 通俗场景:
你点外卖(发请求)→ 继续刷剧(不刷新页面)→ 外卖到了(数据返回更新页面)。 - 代码示例:
// 用 fetch 获取服务器数据 fetch('https://api.example.com/data').then(response => response.json()).then(data => {console.log('拿到数据:', data);});
7️⃣ Cookie 和本地存储(小本本记数据)
- 是什么:浏览器存储少量用户数据的方式(比如登录状态、用户偏好)。
- 区别:
- Cookie:每次请求自动带上的小纸条(适合存登录 token)。
- LocalStorage:本地永久存储的大本子(适合存用户设置)。
8️⃣ 前端框架(高效造轮子工具)
- 是什么:快速构建复杂网页的工具(比如 React、Vue)。
- 核心能力:
- 组件化:把网页拆成可复用的“积木块”(如导航栏、商品卡片)。
- 数据驱动:修改数据自动更新页面(不用手动操作 DOM)。
9️⃣ 跨域问题(快递公司的地盘限制)
- 是什么:浏览器禁止网页向“不同域名”的服务器发请求(安全限制)。
- 通俗场景:
你的网站(A 快递公司)想从另一个网站(B 快递公司)拿货 → 被保安拦下。 - 解决方案:服务器设置
CORS
头(相当于 B 快递公司给 A 开通行证)。
🔟 开发者工具(侦探放大镜)
- 是什么:浏览器自带的调试工具(Chrome 按 F12 打开)。
- 常用功能:
- Elements:查看和修改 DOM 和 CSS。
- Console:运行 JavaScript 代码,查看错误。
- Network:监控所有网络请求(比如 AJAX 请求是否成功)。
🌐 总结:前端如何协作?
- HTML 搭骨架 → CSS 穿衣服 → JavaScript 加动作。
- DOM 是 JavaScript 操作网页的“手柄”。
- AJAX 和服务器偷偷通信,事件监听用户动作。
- 开发者工具帮你调试代码,框架提升开发效率。
🧩 记忆技巧
把网页想象成一个人:
- HTML 是骨架 → 决定长什么样(高矮胖瘦)。
- CSS 是衣服和化妆 → 决定好不好看。
- JavaScript 是肌肉和神经 → 决定能做什么动作。
- DOM 是医生的手术刀 → 用来调整骨架和肌肉。
🌟 通俗解答 & 实战示例
—#### 1. DOM 的全称是什么? - 全称:Document Object Model(文档对象模型) - 通俗解释: 把网页想象成一本立体书,DOM 就是这本书的“3D 结构说明书”。 - 浏览器读取 HTML 代码(比如 <button>按钮</button>
)后,会生成一棵“节点树”,DOM 就是这棵树的编程接口,让你能用 JavaScript 操作页面元素(比如点击按钮变色)。 - 代码示例: javascript // 通过 DOM 修改网页内容 document.querySelector('button').textContent = '点我变红!';
—#### 2. 域名到底是什么? - 通俗解释: 域名 = 网站的“门牌号”。 - 比如 www.baidu.com
是百度的域名,它对应服务器的 IP 地址(如 14.215.177.38
),但域名更容易记忆。 - DNS(域名系统):相当于“电话簿”,把域名翻译成 IP 地址。 - 实战场景: 你在浏览器输入 www.google.com
→ DNS 找到 Google 服务器的 IP → 浏览器通过 IP 访问服务器获取网页。—#### 3. 哪里会出现跨域? - 通俗解释: 跨域 = 快递公司拒送非合作商家的包裹。 - 同源策略:浏览器为了安全,禁止网页向“不同源”(域名、协议、端口任一不同)的服务器发请求。 - 跨域场景: 你的网站 https://www.yoursite.com
请求 https://api.others.com
的数据 → 浏览器拦截。 - 代码示例(触发跨域): javascript // 前端代码在 http://localhost:3000 请求其他域名的接口 fetch('https://api.another-domain.com/data') .then(response => response.json()) .then(data => console.log(data)); // 浏览器报错:跨域请求被阻止
- 解决方案: - 后端设置 CORS 头(允许你的域名访问)。 - 用 Nginx 反向代理(见下文)。—#### 4. 前端代码和 Nginx 的关系 - 通俗解释: Nginx = 全能门卫 + 快递分拣员。 - 静态资源托管:Nginx 可以直接托管你的前端代码(HTML/CSS/JS 文件),用户访问时快速返回。 - 反向代理:帮你转发请求到后端服务器,绕过跨域限制。 - 实战场景: 你的前端代码部署在 Nginx 上,用户访问 https://www.yoursite.com
: 1️⃣ 请求 /
→ Nginx 返回 index.html
(前端页面)。 2️⃣ 前端请求 /api/data
→ Nginx 转发到 http://backend-server:8080/api/data
(后端接口)。 - Nginx 配置示例(解决跨域): nginx server { listen 80; server_name www.yoursite.com; # 托管前端静态文件 location / { root /usr/share/nginx/html; index index.html; } # 反向代理转发 API 请求 location /api/ { proxy_pass http://backend-server:8080/; # 转发到后端 add_header 'Access-Control-Allow-Origin' '*'; # 允许所有域名访问(仅测试用) } }
—### 🛠️ 直接实战! 步骤 1:用 Nginx 托管前端项目 1. 将前端代码(如 dist
文件夹)放到 Nginx 的 /usr/share/nginx/html
目录。 2. 访问 http://你的服务器IP
即可看到网页。 步骤 2:配置反向代理解决跨域 1. 修改 Nginx 配置(如上方示例),将 /api/
请求转发到后端服务器。 2. 前端代码直接请求 /api/data
(而非完整域名),Nginx 自动转发。 效果: - 用户无感知跨域问题,Nginx 默默完成“快递分拣”。 - 前端代码和后端接口解耦,部署更灵活。 —### 📝 总结 - DOM:操作网页的“结构说明书”。 - 域名:网站的易记门牌号。 - 跨域:浏览器的安全限制(可通过 Nginx 绕开)。 - Nginx:前端代码的托管者 + 请求转发员。 - 记住:Nginx 是你的“中间人”,帮你处理请求分发和跨域难题!
🌟 通俗解答
1. 域名的构成
域名 = 网站的“门牌号”,由 多级字符串 组成,不包含 IP 和端口。
- 典型结构:
www.example.com
- 顶级域(TLD):
.com
(商业网站)、.org
(组织)、.cn
(国家代码)。 - 二级域:
example
(你注册的网站名称)。 - 子域名:
www
(常见的子域名,可自定义为blog.example.com
)。
- 顶级域(TLD):
示例类比:
- 域名 ≈ 公司大楼的地址(如“北京市海淀区中关村大街1号”)。
- IP ≈ 大楼的经纬度坐标(精确位置,但难记)。
- 端口 ≈ 大楼里的房间号(比如 8080 房间是技术部,80 房间是前台)。
2. 域名 vs IP vs 端口
概念 | 作用 | 是否属于域名 | 示例 |
---|---|---|---|
域名 | 方便记忆的网站地址 | 是 | www.baidu.com |
IP | 服务器的真实网络地址 | 否 | 14.215.177.38 |
端口 | 指定服务器上的具体服务 | 否 | :80 (HTTP默认端口) |
3. 端口在哪里出现?
- 默认隐藏:访问
http://www.example.com
时,实际是http://www.example.com:80
(HTTP 默认端口)。 - 显式指定:若服务运行在非常用端口(如 8080),需手动添加:
http://www.example.com:8080
。
通俗场景:
- 你去餐厅吃饭(访问服务器):
- 域名 = 餐厅名字(如“海底捞”)。
- IP = 餐厅的 GPS 坐标(精确但难记)。
- 端口 = 餐厅的桌号(默认是 80 号桌,但包间可能设在 8080 号桌)。
🛠️ 实战场景
场景 1:通过域名访问网站
- 用户输入:
https://www.github.com
- 背后流程:
- DNS 将
www.github.com
解析为 IP(如140.82.121.3
)。 - 浏览器向
140.82.121.3:443
(HTTPS 默认端口)发起请求。
- DNS 将
场景 2:指定端口访问服务
- 开发环境:你的 Node.js 后端服务运行在
http://localhost:3000
。 - 访问方式:浏览器输入
http://localhost:3000
(显式指定端口)。
📝 总结
- 域名是易记的网站地址,由多级字符串构成(如
www.example.com
)。 - IP是服务器的真实网络坐标,端口是服务器上的“房间号”(如
:80
)。 - 域名不包含 IP 和端口,但访问时可通过 URL 显式指定端口(如
example.com:8080
)。
记住:
- 域名 ≈ 你的名字(方便别人称呼你)。
- IP ≈ 你的身份证号(精确标识,但难记)。
- 端口 ≈ 你家的门牌号(决定访问哪个房间)。
相关文章:
Node.js是js语言在服务器编译运行的环境,什么是IP和域名
一句话结论 Node.js 不是语言也不是框架,而是一个让 JavaScript 能运行在服务器端的“环境”(类似 Python 的解释器)。JavaScript 是语言,Node.js 是它的“执行工具”。 🌰 用 Python 类比理解 Python 和 JavaScript …...
checkra1n越狱出现的USB error -10问题解决
使用checkra1n进行越狱是出现: 解决办法(使用命令行进行越狱): 1. cd /Applications/checkra1n.app/Contents/MacOS 2. ./checkra1n -cv 3. 先进入恢复模式 a .可使用爱思助手 b. 或者长按home,出现关机的滑条,同时按住home和电源键&#…...
如何利用 Java 爬虫获取京东商品详情信息
在电商领域,获取商品详情信息对于数据分析、市场研究和用户体验优化具有重要意义。京东作为国内知名的电商平台,提供了丰富的商品详情信息 API 接口。通过 Java 爬虫技术,我们可以高效地调用这些接口,获取商品的详细信息ÿ…...
【spark--scala】--环境配置
文章目录 scalaspark scala 官网下载二进制包 添加环境变量 #set scala export SCALA_HOME/usr/local/src/scala-2.11.8 export PATH$PATH:$SCALA_HOME/binspark 官网下载二进制包 解压后 spark/conf cp slaves.template slaves cp spark-env.sh.template spark-env.sh# s…...
Spark Core学习总结
一、Spark运行架构 1. 核心组件 Driver(驱动器): 执行main方法,负责将用户程序转换为作业(Job)。 调度任务(Task)到Executor,并监控任务执行状态。 通过UI展示作业运行情…...
Python深度学习基础——深度神经网络(DNN)(PyTorch)
张量 数组与张量 PyTorch 作为当前首屈一指的深度学习库,其将 NumPy 数组的语法尽数吸收,作为自己处理张量的基本语法,且运算速度从使用 CPU 的数组进步到使用 GPU 的张量。 NumPy 和 PyTorch 的基础语法几乎一致,具体表现为&am…...
前端三件套—CSS入门
上篇文章: 前端三件套—HTML入门https://blog.csdn.net/sniper_fandc/article/details/147070026?fromshareblogdetail&sharetypeblogdetail&sharerId147070026&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 引入CSS …...
mapreduce-案例-简单的数据清洗案例代码
//1.从Mapper继承 //2.重写map方法 //LongWritable,Text:表示初始输入的键值对格式。LongWritable是键的数据类型,Text是值的数据类型 //Text,LongWritable:表示map函数输出的数据的格式。Text是键的数据类型,LongWritable是值的数据类型 public class W…...
为什么PDF文件更适合LLM大模型信息提取?
为什么PDF文件更适合LLM大模型信息提取? 在Dify平台中,我们通过LLM大模型提取上传文件中的指定信息。目前使用的大模型包括qwen2:7b和deepseek-r1:70b。然而,我们发现一个有趣的现象:在提取信息时,PDF文件的表现明显优…...
期权时间价值与隐含波动率怎么选?
期权隐含波动率与时间价值要怎么选?期权隐含波动率IV对期权价格有着巨大的影响。整体来看,期权隐波与期权价格呈正相关关系。当期权隐波从低水平上升时,期权价格也会相应上涨;反之,当隐波下降,期权价格则会…...
LangChain入门指南:调用DeepSeek api
文章目录 1. 什么是LangChain?2. 核心组件3. 为什么选择LangChain?4. 实战案例安装简单chat案例流式交互Prompt模板 5. 简单总结 1. 什么是LangChain? 定义:LangChain是一个用于构建大语言模型(LLM)应用的…...
Cherry Studio配置MCP server
MCP server在很多的app上开始支持了,从以前的claude desktop,到cursor,vscode等等,甚至现在开源的软件也都开始支持mcp协议的配置了.这里主要来说一下如何在cherry studio中配置好mcp的服务. cheery studio 中配置MCP并使用 基础配置过程Blender MCP百度地图GitGithubfilesyst…...
前端快速入门——JavaScript变量、控制语句
1.JavaScript 定义 JavaScript 简称 JS. JavaScript 是一种轻量级、解释型、面向对象的脚本语言。它主要被设计用于在网页上实现动态效果,增加用户与网页的交互性。 作为一种客户端脚本语言,JavaScript 可以直接嵌入 HTML,并在浏览器中执行。…...
[CISSP] [8] 安全模型,设计和能力的原则
开源软件(Open Source Software, OSS) 优点: 透明性高 开源软件的源代码对公众开放,安全专家和用户可以检查其实现,验证是否存在安全隐患。 社区驱动的漏洞发现 有大量开发者和安全研究人员参与代码审查,…...
docker使用
最近为了打vulhub也是搞了好久的docker,搞了半天搞得我头大,结果还是没能成功,不知道为什么起shiro550靶场总是报139的错误,在网上搜了半天也没有解决,有没有师傅救一下喵QaQ 安装就不说了喵,安装完记得换…...
phpexcel导出下拉框,超过255字符不显示的问题处理
用php生成excel模板,并设置下拉框的选项。如果选项太多,可能导致下拉框不显示的问题。下面会给出示例,以及解决方案,支持生成包含大量数据的下拉框。 // $info 为下拉框的数数据,[男,女,保密] function exportDataSel…...
【重构谷粒商城12】npm快速入门
重构谷粒商城12:npm快速入门 前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶…...
【Pandas】pandas DataFrame bool
Pandas2.2 DataFrame Conversion 方法描述DataFrame.astype(dtype[, copy, errors])用于将 DataFrame 中的数据转换为指定的数据类型DataFrame.convert_dtypes([infer_objects, …])用于将 DataFrame 中的数据类型转换为更合适的类型DataFrame.infer_objects([copy])用于尝试…...
Django 在同一域名下使用 NGINX 服务器运行 Django 和 WordPress
在本文中,我们将介绍如何使用 NGINX 服务器在同一域名下同时运行 Django 和 WordPress。我们将使用反向代理和URL重写来实现这一目标。 1. 安装和配置 NGINX 首先,我们需要在服务器上安装并配置 NGINX。请根据您的操作系统类型和版本的要求,…...
LeetCode Hot100 刷题笔记(2)—— 子串、普通数组、矩阵
目录 前言 一、子串 1. 和为 K 的子数组 2. 滑动窗口最大值 3. 最小覆盖子串 二、普通数组 4. 最大子数组和 5. 合并区间 6. 轮转数组 7. 除自身以外数组的乘积 8. 缺失的第一个正数 三、矩阵 9. 矩阵置零 10. 螺旋矩阵 11. 旋转图像 12. 搜索二维矩阵 II 前言 一、子串&#…...
游戏引擎学习第213天
回顾并为今天的工作做准备 今天我们将继续在调试界面上进行一些编码工作。我们已经完成了很多内容,并且昨天完成了与游戏的集成,主要是在两个系统之间统一了用户界面。 今天的目标是进入调试界面,进一步整理并完善它,以便我们能…...
使用 Django 构建 Web 应用程序:症状检测 - 分步指南
使用 Django 构建 Web 应用程序:症状检测 - 分步指南 推荐超级课程: 本地离线DeepSeek AI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录 使用 Django 构建 Web 应用程序:症状检测 - 分步指南先决条件第 1 步:设置 …...
oracle将varchar2 转为clob类型存储。 oracle不支持直接使用sql,将 varchar2 到clob的类型转换,需要下面操作
将一个现有表中的 VARCHAR2 列数据迁移到一个 CLOB 列的过程。以下是对每一步操作的说明: 1. 添加一个新的 CLOB 类型列 首先,向表中添加一个新的 CLOB 类型的列。这个列将用来存储原本的 VARCHAR2 数据。 ALTER TABLE your_table ADD (new_column CL…...
React 之 Redux 第三十一节 useDispatch() 和 useSelector()使用以及详细案例
使用 Redux 实现购物车案例 由于 redux 5.0 已经将 createStore 废弃,我们需要先将 reduxjs/toolkit 安装一下; yarn add reduxjs/toolkit// 或者 npm install reduxjs/toolkit使用 vite 创建 React 项目时候 配置路径别名 : // 第一种写法…...
RHCSA Linux系统 vim 编辑器
1.使用 vi/vim 编辑文件 [rootlocalhost ~]# vim /etc/passwd 默认进入命令模式 2.命令模式下的常用快捷键 (1) 光标跳转快捷键 (2)复制、粘贴、删除 3.编辑模式 4.末行模式 (1)查找关键字替换 (2&…...
ABAP小白开发操作手册+(十)验证和替代——下
目录 一、前言 二、替代步骤详解 1、新建替换 2、新建步骤 3、创建先决条件 4、补充替换 5、ZRGGBS000 三、传输请求 四、DEBUG 一、前言 本章内容分为上下两篇,包括验证和替代, 上篇:验证步骤、传输验证请求、DEBUG 下篇…...
鸿蒙小案例---心情日记
效果演示 代码实现 import { router, window } from kit.ArkUIEntry Component struct Index {async aboutToAppear(): Promise<void> {let w await window.getLastWindow(getContext())w.setWindowSystemBarProperties({statusBarColor: #00C6C3,statusBarContentColo…...
一种单脉冲雷达多通道解卷积前视成像方法【论文阅读】
一种单脉冲雷达多通道解卷积前视成像方法-李悦丽-2007 1. 论文的研究目标与实际意义1.1 研究目标1.2 实际问题与产业意义2. 论文提出的思路、方法及模型2.1 多通道解卷积(MCD)技术的核心思想2.1.1 数学模型与公式推导2.1.2 针对单脉冲雷达的改进2.2 方法与传统技术的对比3. 实…...
React中使用dnd-kit实现拖拽排序
使用dnd-kit实现拖拽排序 效果展示 实现源码 安装依赖 dad-kit github地址 yarn add dnd-kit/core dnd-kit/sortable dnd-kit/utilities dnd-kit/modifiers这几个包的作用 dnd-kit/core:核心库,提供基本的拖拽功能。dnd-kit/sortable:扩…...
深度学习总结(3)
数据批量的概念 通常来说,深度学习中所有数据张量的第一个轴(也就是轴0,因为索引从0开始)都是样本轴[samples axis,有时也叫样本维度(samples dimension)]。深度学习模型不会一次性处理整个…...
Android Studio Narwhal | 2025.1.1新功能
Android Studio 中的 Gemini 支持多模式图像附件 现在,您可以在 Android Studio 中将图像直接附加到 Gemini 提示中。您可以即时获取复杂技术图表的洞察,或使用设计模型生成相应的代码框架。这种将视觉环境无缝集成到 AI 辅助工作流程中的设计方式&…...
XML语法指南——从入门到精通
1、引言 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,它被设计为具有自我描述性且易于理解。本文将全面介绍XML的语法规则,包括元素、属性、命名规则、转义字符等核心概念。 2、XML文档基本结构 一个完整的XML文档…...
利用高阶函数实现AOP
如大家所熟悉的,AOP(面向切面编程)的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来,这些跟业务逻辑无关的功能通常包括日志统计、安全控制、异常处理等。 把这些功能抽离出来之后,再通过“动态织入”的方式掺…...
原生SSE实现AI智能问答+Vue3前端打字机流效果
实现流程: 1.用户点击按钮从右侧展开抽屉(drawer),打开模拟对话框 2.用户输入问题,点击提问按钮,创建一个SSE实例请求后端数据,由于SSE是单向流,所以每提一个问题都需要先把之前的实…...
windows11下pytorch(cpu)安装
先装anaconda 见最下方 Pytorch 官网:PyTorch 找到下图(不要求版本一样)(我的电脑是集显(有navdia的装gpu),装cpu) 查看已有环境列表 创建环境 conda create –n 虚拟环境名字(…...
C++【string类】(一)
string类 1.为什么要学string?2.标准库类型的string类2.1 string类的构造2.2string类的析构2.3读写string类2.4string类的赋值重载2.5string的遍历 1.为什么要学string? 在C语言中字符出串是以‘/0’结尾的一些字符的结合,为了操作方便&…...
yarn:error Error: certificate has expiredERR_OSSL_EVP_UNSUPPORTED解决
yarn:error Error: certificate has expired 报错 error Error: certificate has expiredat TLSSocket.onConnectSecure (node:_tls_wrap:1679:34)at TLSSocket.emit (node:events:519:28)at TLSSocket._finishInit (node:_tls_wrap:1078:8)at ssl.onhandshakedon…...
Git Cherry-pick:核心命令、实践详解
Git Cherry-pick:核心命令、实践详解 一、Cherry-pick 1. 简介 在多分支协作开发中,我们常常只想把某个分支上的单个或若干次提交,合并到另一个分支,而不需要合并整个分支。Git 提供的 cherry-pick 命令,正是为此而…...
ffmpeg播放音视频流程
文章目录 🎬 FFmpeg 解码播放流程概览(以音视频文件为例)1️⃣ 创建结构体2️⃣ 打开音视频文件3️⃣ 查找解码器并打开解码器4️⃣ 循环读取数据包(Packet)5️⃣ 解码成帧(Frame)6️⃣ 播放 / …...
OSPF的数据报文格式【复习篇】
OSPF协议是跨层封装的协议(跨四层封装),直接将应用层的数据封装在网络层协议之后,IP协议包中协议号字段对应的数值为89 OSPF的头部信息: 所有的数据共有的信息字段 字段名描述版本当前OSPF进程使用的版本(…...
Spark大数据分析与实战笔记(第四章 Spark SQL结构化数据文件处理-04)
文章目录 每日一句正能量第4章 Spark SQL结构化数据文件处理章节概要4.4 RDD转换DataFrame4.4.1 反射机制推断Schema4.4.2 编程方式定义Schema 每日一句正能量 一个人若想拥有聪明才智,便需要不断地学习积累。 第4章 Spark SQL结构化数据文件处理 章节概要 在很多情…...
设计模式 --- 状态模式
状态模式是一种行为型设计模式,允许对象在内部状态改变时动态改变其行为,使对象的行为看起来像是改变了。该模式通过将状态逻辑拆分为独立类,消除复杂的条件分支语句,提升代码的可维护性和扩展性。 状态模式的…...
将外网下载的 Docker 镜像拷贝到内网运行
将外网下载的 Docker 镜像拷贝到内网运行,可以通过以下步骤实现: 一、在有外网访问权限的机器上操作 下载镜像 使用docker pull命令下载所需的镜像。例如,如果你需要下载一个名为nginx的镜像,可以运行以下命令:docke…...
Seq2Seq - GRU补充讲解
nn.GRU 是 PyTorch 中实现门控循环单元(Gated Recurrent Unit, GRU)的模块。GRU 是一种循环神经网络(RNN)的变体,用于处理序列数据,能够更好地捕捉长距离依赖关系。 ⭐重点掌握输入输出部分输入张量&#…...
从0到1构建工具站 - day6 (在线编程工具-docker)
从0到1构建工具站 网页在线编程工具构建(php、go、python)搜集其他在线编程网站构建php8运行环境Dockerfiledocker-compose.yaml 构建python运行环境Dockerfiledocker-compose.yml 核心调用python的docker-sdk包执行命令执行文件流程执行命令流程pythonp…...
C++面向对象编程优化实战:破解性能瓶颈,提升应用效率
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,拥有高级工程师证书;擅长C/C、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle…...
JavaWeb 课堂笔记 —— 06 Maven
本系列为笔者学习JavaWeb的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖SpringMyBatisSpringMVCSpringBoot等)》,章节分布参考视频教程,为同样学习…...
【Linux】网络层协议 IP
网络层协议 IP 一. 基本概念二. IP 协议格式三. 网段划分 (重点)1. 传统方法2. 子网掩码 四. 特殊 IP 地址五. IP 地址的数量限制六. 私有 IP 地址和公网 IP 地址七. 运营商1. 基本网络情况2. 全球网络情况 八. 路由九. IP 报文的分片和组装 网络层:在复杂的网络环境…...
嵌入式系统中如何构建事件响应架构
在复杂的嵌入式系统中,串口、BLE、定时器、中断等多种事件源并存,如何高效地统一调度这些异步事件,是系统稳定性和可维护性的关键。本文将结合 BLE 系统架构的经验,讲解如何构建一个通用的事件响应架构。 🧩 一、什么是事件响应架构? 事件响应架构(Event-Driven Archi…...
Flutter报错:Warning: CocoaPods is installed but broken
最近在做Flutter开发,在跑iOS的时候报错: 结论:CocoaPods安装有问题 解决办法: 先卸载本地CocoaPods,然后重新安装 查看当前版本 gem list | grep cocoapods执行卸载 sudo gem uninstall cocoapods直到 which -a…...