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

Node.js 开发项目

初始化

npm init## 
npm install 

编辑packege.json 添加,以支持ES6的语法

"type": "module"

连接mysql示例

import db from './db/ops_mysql.js'const createTable = async () => {const insert_data = `CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL);`;try {await db.query(createTableSQL);console.log('Table `users` created successfully.');} catch (error) {console.error('Error creating table:', error);} finally {await db.end();}
};const insertData = async () => {const insert_data = `INSERT INTO users (username, password) VALUES ('knight', '112233');`;try {await db.query(insert_data);console.log('Data inserted successfully into `users` table.');} catch (error) {console.error('Error inserting data:', error);} finally {await db.end();}
};// createTable();// insertData();

http请求示例

import fetch, { Response } from "node-fetch";
// 发送get请求const fetchData =  async(userid)=>{const url = `https://jsonplaceholder.typicode.com/posts?userId=${userid}`;const res = await fetch(url);// const data = await res.json();/*在你的代码中,res.json() 返回的是一个 Promise 对象,而不是直接的数据。如果你在调用 res.json() 前不加 await,你实际上是在处理一个 Promise,而不是获取到 JSON 数据使用 await:当你在前面加上 await 时,代码会暂停执行,直到 Promise 完成并返回解析后的数据。*/const data =  res.json();   console.log(data)     };fetchData(1)

读取json配置文件

import fs from 'fs/promises';async function loadConfig(){const data  = await fs.readFile('conf/config.json','utf-8');const config = JSON.parse(data);console.log(config);console.log(config.database['host']);}loadConfig();

Express 项目开发

依赖

D:\js-res\knight_res>npm list
devops@1.0.0 D:\js-res\knight_res
+-- @elastic/elasticsearch@7.17.14
+-- express@5.1.0
+-- mysql2@3.14.0
+-- node-fetch@3.3.2
+-- puppeteer@24.7.2
`-- sync-mysql@3.0.1

web.js

import express, { Router } from 'express';
import router from './router.js';const app = express();const port  = process.env.port || 3000;
console.log(port);
app.listen(port,()=>{console.log("running....");
})app.use(router);
// 静态资源路径
app.use(express.static('static'));
app.use(express.static('public'));

router.js

import express from 'express';
import {query_data_main,id_query_data_main} from './db/ops_mysql.js'
import {ES_DataMain,ES_RW} from './db/ops_es.js'const router = express.Router();router.get('/user',(req,res)=>{res.send({'name':'rose','age':30})
})router.get('/{a*bcd}', async(req, res) => {res.send('ab?cd')})router.get('/user/:id',(req,res,next)=>{console.log('Request URL:', req.originalUrl)res.send('USER')
})
// check mysql
router.get('/list_data',(req,res)=>{res.send(query_data_main())
})router.get('/list_data/:id',(req,res)=>{const id = req.params.id;console.log(id);res.send(id_query_data_main(id))
})// es read
router.get('/list_es_data',async(req,res)=>{const  body_sql = {query: {match_all: {}}}const data = await ES_DataMain(body_sql);res.send(data);
})// es read for title
router.get('/list_es_data_title',async(req,res)=>{const  body_sql = {query: {"match": {"title": "test"}}}const data = await ES_DataMain(body_sql);res.send(data);
})// 写入数据
router.get('/rw_es_data/:name/:age',async(req,res)=>{const name = req.params.name;const age = req.params.age;const  body_sql = {name: name,age: age}const data = await ES_RW(body_sql);res.send("sucess");
})export default router;

ops_mysql.js

import mysql from 'sync-mysql';
import path from 'path';
import fs from 'fs';
import { fileURLToPath } from 'url';// 获取当前模块的目录名
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);const configPath = path.join(__dirname, '../conf/config.json');// 同步加载配置
function loadConfig() {try {const data = fs.readFileSync(configPath, 'utf-8'); // 使用同步读取return JSON.parse(data)['mysql_info'];} catch (error) {console.error('Error reading config file:', error);throw error;}
}// 创建 MySQL 连接
function createConnection() {const mysql_config = loadConfig(); // 同步获取配置return new mysql({host: mysql_config['host'],user: mysql_config['user'],password: mysql_config['password'],database: mysql_config['database']});
}// 同步查询数据
function query_data(connection) {try {let sql = 'SELECT * FROM users;'const rows = connection.query(sql);// console.log(rows);return rows;} catch (error) {console.error('Error executing query:', error);}
}// 根据id 查询function id_query_data(connection,id){let sql = `SELECT * FROM users where id = ${id};`const rows = connection.query(sql);return rows;}// 主查询函数
function query_data_main() {const connection = createConnection();const data = query_data(connection);console.log(data);return data;
}function id_query_data_main(id) {const connection = createConnection();const data = id_query_data(connection,id);return data;
}
// 导出函数
export { loadConfig, createConnection, query_data_main,id_query_data_main };// 执行查询
query_data_main();

ops_es.js

import path from 'path';
import fs from 'fs';
import { fileURLToPath } from 'url';
import { Client } from '@elastic/elasticsearch'; // 获取当前模块的目录名
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);const configPath = path.join(__dirname, '../conf/config.json');// 同步加载配置
function loadConfig() {try {const data = fs.readFileSync(configPath, 'utf-8'); // 使用同步读取// console.log(data["es_info"]);const data_2 = JSON.parse(data);console.log(data_2["es_info"]);return (data_2["es_info"]);} catch (error) {console.error('Error reading config file:', error);throw error;}
}// 创建 Elasticsearch 客户端
function createClient() {const es_config = loadConfig();console.log(es_config);return new Client({ node: es_config["host"] });
}// 读取所有数据,异步读取
async function queryData(client,body_sql) {const { body } = await client.search({index: 'my_index', // 替换为你的索引名称body: body_sql});return body.hits.hits; // 返回查询结果
}// 写入数据
async function writeData(client,body_sql){const response = await client.index({index : 'my_index',body: body_sql})}async function ES_DataMain(body_sql) {const client = createClient();const data = await queryData(client,body_sql);console.log(data); // 输出查询结果return data; // 返回结果
}async function ES_RW(body_sql) {const client = createClient();const data = await writeData(client,body_sql);console.log(data); // 输出查询结果return data; // 返回结果
}export { ES_DataMain,ES_RW };

相关文章:

Node.js 开发项目

初始化 npm init## npm install 编辑packege.json 添加,以支持ES6的语法 "type": "module" 连接mysql示例 import db from ./db/ops_mysql.jsconst createTable async () > {const insert_data CREATE TABLE IF NOT EXISTS users (…...

网络准入控制系统推荐:2025年构建企业网络安全的第一道防线

随着信息技术的飞速发展,企业网络环境日益复杂,阳途网络准入控制系统作为一种先进的网络安全解决方案,其核心是确保网络接入的安全性。 一、网络准入控制系统的基本原理与功能 网络准入控制以“只有合法的用户、安全的终端才可以接入网络”为…...

XSS跨站--订单和Shell箱子后门

本文主要内容 手法 XSS平台使用 XSS工具使用 XSS结合其他漏洞 XSS具体使用场景 某订单系统XSS盲打_平台 某Shell箱子系统XSS盲打_工具 [1]订单系统经典案例 第一个简易攻击流程(订单系统):通过平台完成XSS跨站之后&a…...

游戏遭遇DDoS攻击如何快速止损?实战防御策略与应急响应指南

是不是很抽象 我自己画的 一、游戏DDoS攻击特征深度解析 游戏行业DDoS攻击呈现复合型特征,2023年监测数据显示,针对游戏服务器的攻击中,63%采用UDP反射放大HTTP慢速攻击组合,攻击峰值达3.2Tbps。攻击者利用游戏协议特性&#xff…...

cocos creator使用jenkins打包流程,打包webmobile

windows电脑使用 如果你的电脑作为打包机,一定要锁定自己的ip,如果ip动态获取,可能后续会导致jenkins无法访问,还需要重新配置jenkins和http-server的端口 从jenkins官网下载windows版 Thank you for downloading Windows Stable installer 1.jenkins安…...

自动驾驶(ADAS)领域常用数据集介绍

1. KITTI 数据集 简介:由德国卡尔斯鲁厄理工学院与丰田研究院联合创建,是自动驾驶领域最经典的评测基准,涵盖立体视觉、光流、3D检测等任务。包含市区、乡村和高速公路场景的真实数据,标注对象包括车辆、行人等,支持多…...

C++ 部署的性能优化方法

一、使用结构体提前存放常用变量 在编写前后处理函数时,通常会多次用到一些变量,比如模型输入 tensor 的 shape,count 等等,若在每个处理函数中都重复计算一次,会增加部署时的计算量。对于这种情况,可以考…...

关于IDEA的循环依赖问题

bug描述:(java: 模块循环不支持注解处理。请确保将循环 [...] 中的所有模块排除在注解处理之外) 解决方法:...

如何在idea中写spark程序

在 IntelliJ IDEA 中编写 Spark 程序,可按以下步骤进行: 1. 创建新项目 打开 IntelliJ IDEA,选择File -> New -> Project。在左侧面板选择Maven或者Gradle(这里以 Maven 为例),确保Project SDK选择…...

RAG工程-基于LangChain 实现 Advanced RAG(预检索优化)

Advanced RAG 概述 Advanced RAG 被誉为 RAG 的第二范式,它是在 Naive RAG 基础上发展起来的检索增强生成架构,旨在解决 Naive RAG 存在的一些问题,如召回率低、组装 prompt 时的冗余和重复以及灵活性不足等。它重点聚焦在检索增强&#xff0…...

关于常量指针和指向常量的指针

关于指针,对于常量指针和指向常量的指针也是傻傻分不清。看到定义时,不知道是指针不能变,还是指针指向的内容不能变量。 先看形式: const char * A; char * const B; 这两种有什么区别?傻傻分不清。 A这种定义&am…...

《Masked Autoencoders Are Scalable Vision Learners》---CV版的BERT

目录 一、与之前阅读文章的关系? 二、标题:带掩码的自auto编码器是一个可拓展的视觉学习器 三、摘要 四、核心图 五、结果图 六、不同mask比例对比图 七、“Introduction” (He 等, 2021, p. 1) 引言 八、“Related Work” (He 等, 2021, p. 3)相…...

高压直流输电MATLAB/simulink仿真模型+说明文档

1.模型简介 本仿真模型基于MATLAB/Simulink(版本MATLAB 2018Ra)软件。建议采用matlab2018 Ra及以上版本打开。(若需要其他版本可联系代为转换) 使用一个传输功率为1000MW(500 kV,2 kA)直流互连…...

locust压力测试

安装 pip install locust验证是否安装成功 locust -V使用 网上的教程基本上是前几年的,locust已经更新了好几个版本,有点过时了,在此做一个总结 启动 默认是使用浏览器进行设置的 # 使用浏览器 locust -f .\main.py其他参数 Usage: locust […...

python 线程池顺序执行

在Python中,线程池(ThreadPoolExecutor)默认是并发执行任务的,但若需要实现任务的顺序执行(按提交顺序执行或按结果顺序处理),可以通过以下方案实现: 方案一:强制单线程&…...

第十二届蓝桥杯 2021 C/C++组 空间

目录 题目: 题目描述: 题目链接: 思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: 空间 - 蓝桥云课 思路: 思路详解&#…...

以太网的mac帧格式

一.以太网的mac帧 帧的要求 1.长度 2.物理层...

前端如何使用Mock模拟数据实现前后端并行开发,提升项目整体效率

1. 安装 Mock.js npm install mockjs --save-dev # 或使用 CDN <script src"https://cdn.bootcdn.net/ajax/libs/Mock.js/1.0.0/mock-min.js"></script>2. 创建 Mock 数据文件 在项目中新建 mock 目录&#xff0c;创建 mock.js 文件&#xff1a; // m…...

【hadoop】HBase shell 操作

1.创建course表 hbase(main):002:0> create course,cf 2.查看HBase所有表 hbase(main):003:0> list 3.查看course表结构 hbase(main):004:0> describe course 4.向course表插入数据 hbase(main):005:0> put course,001,cf:cname,hbase hbase(main):006:0> …...

如何使用 Redis 缓存验证码

目录 &#x1f9e0; Redis 缓存验证码的工作原理 &#x1f9f0; 实现流程 1. 安装 Redis 和 Python 客户端 2. 生成并缓存验证码 示例代码&#xff1a;生成并存储验证码 3. 发送验证码&#xff08;以短信为例&#xff09; 4. 校验验证码 示例代码&#xff1a;校验验证码…...

深度学习---框架流程

核心六步 一、数据准备 二、模型构建 三、模型训练 四、模型验证 五、模型优化 六、模型推理 一、数据准备&#xff1a;深度学习的基石 数据是模型的“燃料”&#xff0c;其质量直接决定模型上限。核心步骤包括&#xff1a; 1. 数据收集与标注 来源&#xff1a;公开数据集…...

业绩回暖、股价承压,三只松鼠赴港上市能否重构价值锚点?

在营收重返百亿俱乐部后&#xff0c;三只松鼠再度向资本市场发起冲击。 4月25日&#xff0c;这家坚果零食巨头正式向港交所递交上市申请书&#xff0c;若成功登陆港股&#xff0c;将成为国内首个实现“AH”双上市的零食品牌。 其赴港背后的支撑力&#xff0c;显然来自近期披露…...

JAVA-StringBuilder使用方法

JAVA-StringBuilder使用方法 常用方法 append(Object obj) 追加内容到末尾 sb.append(" World"); insert(int offset, Object obj) 在指定位置插入内容 sb.insert(5, “Java”); delete(int start, int end) 删除指定范围的字符 sb.delete(0, 5); replace(int start…...

【Python】Matplotlib:立体永生花绘制

本文代码部分实现参考自CSDN博客&#xff1a;https://blog.csdn.net/ak_bingbing/article/details/135852038 一、引言 Matplotlib作为Python生态中最著名的可视化库&#xff0c;其三维绘图功能可以创造出令人惊叹的数学艺术。本文将通过一个独特的参数方程&#xff0c;结合极…...

Unity AI-使用Ollama本地大语言模型运行框架运行本地Deepseek等模型实现聊天对话(一)

一、Ollama介绍 官方网页&#xff1a;Ollama官方网址 中文文档参考&#xff1a;Ollama中文文档 相关教程&#xff1a;Ollama教程 Ollama 是一个开源的工具&#xff0c;旨在简化大型语言模型&#xff08;LLM&#xff09;在本地计算机上的运行和管理。它允许用户无需复杂的配置…...

terraform使用vault动态管多理云账号AK/SK

为了使用 Terraform 和 HashiCorp Vault 动态管理多个云账号的 Access Key (AK) 和 Secret Key (SK)&#xff0c;可以按照以下步骤实现安全、自动化的凭证管理&#xff1a; 一、架构概述 核心组件&#xff1a; Vault&#xff1a;存储或动态生成云账号的 AK/SK&#xff0c;提供…...

SAP /SDF/SMON配置错误会导致HANA OOM以及Disk Full的情况

一般来说&#xff0c;为了保障每日信息收集&#xff0c;每个企业都会配置/SDF/SMON的监控。这样在出现性能问题时&#xff0c;可以通过收集到的snapshot进行分析检查。如果/SDF/SMON在配置时选取了过多的记录项&#xff0c;或者选择了过低的时间间隔[Interval in seconds],那显…...

CMU和苹果公司合作研究机器人长序列操作任务,提出ManipGen

我们今天来介绍一项完成Long-horizon任务的一项新的技术&#xff1a;ManipGen。 什么叫Long-horizon&#xff1f;就是任务比较长。说到底&#xff0c;也是任务比较复杂。 那么这个技术就给我们提供了一个非常好的解决这类问题的思路&#xff0c;同时&#xff0c;也取得了不错的…...

大模型(LLMs)强化学习—— PPO

一、大语言模型RLHF中的PPO主要分哪些步骤&#xff1f; 二、举例描述一下 大语言模型的RLHF&#xff1f; 三、大语言模型RLHF 采样篇 什么是 PPO 中 采样过程&#xff1f;介绍一下 PPO 中 采样策略&#xff1f;PPO 中 采样策略中&#xff0c;如何评估“收益”&#xff1f; …...

[Python开发] 如何用 VSCode 编写和管理 Python 项目(从 PyCharm 转向)

在 Python 开发领域,PyCharm 一直是广受欢迎的 IDE,但其远程开发功能(如远程 SSH 调试)仅在付费版中提供。为了适应服务器部署需求,很多开发者开始将目光转向更加轻量、灵活且免费扩展能力强的 VSCode。本篇文章将详细介绍,从 PyCharm 转向 VSCode 后,如何高效搭建和管理…...