4.9 nodejs操作多种数据库

npm安装opencv4nodejs(Windows) 前言 官方指南 踩坑指南 安装好 git 和 cmake 安装 windows-build-tools 安装 opencv4nodejs 安装成功 参考链接 前言 深夜踩坑真的是太难了,呜呜 OpenCV 可以说是很早就接触了,之前用过 Python 版本的和 C++ 版本的。最近在学习前端方面的知识,做 WebGIS 和图像处理方面的开发,顺理成章就希望能将 OpenCV 用在前端上。查阅了一些资料,发现已经有大神做了将 OpenCV 用于 NodeJS 上的开发,其名为 opencv4node. 阅读详情

1、目录结构

2、从mysql中取数据

npm install mysql

config/mysql_config.js

module.exports = {
    options: {
        host: '192.168.3.74',
        user: 'root',
        password: '123456',
        database: 'testdata'
    },
    sql: 'select * from testdata_check',
}

mysql/read_mysql.js

const mysql = require('mysql')

let connect = (options) => {
    let connection = mysql.createConnection(options)
    return new Promise((resolve, reject) => {
        connection.connect(function (err) {
            if (err) {
                console.error('error connecting: ' + err.stack);
                return;
            }
            console.log('mysql connected as id ' + connection.threadId);
            resolve(connection)
        });
    })
}

let read = (connection, sql) => {
    return new Promise(((resolve, reject) => {
        connection.query(sql, function (err, results, filed) {
            resolve(results)
        })
    }))
}

module.exports = {
    connect,
    read
}

2、写入redis,存储为hash

npm install redis

redis/operate_redis.js

const redis = require('redis')

let con = (url) => {
    return new Promise((resolve, reject) => {
        let client = redis.createClient({url: url})
        client.on('error', (err) => console.log('Redis Client Error', err));
        client.on('connect', () => console.log('Redis Client Connected'))
        client.connect().then(r => {
        })
        resolve(client)
    })
}
let write = (con, arraylist) => {
    return new Promise((resolve, reject) => {
        for (let i in arraylist) {
            if (arraylist.hasOwnProperty(i)) {
                if (arraylist[i]['id'] && arraylist[i]['task_instance_id']) {
                    con.hSet(arraylist[i]['id'], arraylist[i]['task_instance_id'], arraylist[i]['crawl_content']);
                }
            }
        }
        resolve(arraylist.length)
    })
}
module.exports = {
    con,
    write
}

 run.js

const {read, connect} = require('../mysql/read_mysql');
const {write, con} = require('./operate_redis');
const mysql_config = require('../config/mysql_config');
const redis_config = require('../config/redis_config');

(async () => {
    let c = await connect(mysql_config.options)
    let array = await read(c, mysql_config.sql)
    let redis_client = await con(redis_config.redis_url)
    await write(redis_client, array)
    await c.end()
    await redis_client.disconnect()
})()

config/redis_config.js

module.exports = {
    redis_url: 'redis://10.7.128.15:6379'
}

3、写入mongodb

npm install mongoose

mongodb/write.js

const mongoose = require('mongoose')

let con = (url) => {
    return new Promise(((resolve, reject) => {
        mongoose.connect(url).then(r => {
        })
        let db = mongoose.connection;
        db.on('error', console.error.bind(console, 'connection error:'));
        db.once('open', function () {
            console.log('mongodb connected')
        });
        resolve(mongoose)
    }))
}

let create_schema = (obj) => {
    return new Promise(((resolve, reject) => {
        let test_schema = mongoose.Schema(obj)
        resolve(test_schema)
    }))
}

let create_model = (schema) => {
    return new Promise(((resolve, reject) => {
        let TestModel = mongoose.model('TestModel', schema)
        resolve(TestModel)
    }))
}

let save = (model, array) => {
    return new Promise(((resolve, reject) => {
        for (let i in array) {
            if (array.hasOwnProperty(i)) {
                let m = new model(array[i])
                m.save(function (err, m) {
                    if (err) return console.log(err)
                    else console.log('success')
                })
            }
        }
    }))
}

module.exports = {
    con,
    create_schema,
    create_model,
    save
}

 mongodb/run.js

const {con, create_model, create_schema, save} = require('./write');
const mongo_config = require('../config/mongo_config');
const mysql_config = require('../config/mysql_config');
const {connect, read} = require('../mysql/read_mysql');
(async () => {
    let c = await connect(mysql_config.options)
    let arr = await read(c, mysql_config.sql)
    let db = await con(mongo_config.mongo_url)
    let obj = {
        id: String,
        crawl_cfg_id: String,
        detection_type: String,
        crawl_file_info_id: String,
        task_instance_id: String,
        crawl_content: String,
        col6: String,
        col7: String,
        col8: String
    }
    let test_schema = await create_schema(obj)
    let TestModel = await create_model(test_schema)
    await save(TestModel, arr)
    await c.end()
    db.disconnect()
})()

config/mongo_config.js

module.exports = {
    mongo_url: 'mongodb://10.7.128.16/testdata'
}

4、写入elastchsearch

client方式

npm install @elastic/elasticsearch

const {Client } = require('@elastic/elasticsearch');

(async ()=>{
    const client = new Client({node:'http://10.7.128.15:9200'})
    const result = await client.search({
        index:'index',
        type:'testdata'
    })
    await console.log(result.body)
})()

rest方式

文档地址:https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/search_examples.html

elastchsearch/write.js

const axios = require('axios');
const mysql_config = require('../config/mysql_config');
const es_config = require('../config/elastchsearch_config')
const {connect, read} = require('../mysql/read_mysql');

let options = {
    mappings: {}
}
options.mappings[`${es_config.entity_name}`] = {
    properties: {
        id: {
            type: "text"
        },
        crawl_cfg_id: {
            type: "text"
        },
        detection_type: {
            type: "text"
        },
        crawl_file_info_id: {
            type: "text"
        },
        task_instance_id: {
            type: "text"
        },
        crawl_content: {
            type: "text"
        },
        col6: {
            type: "text"
        },
        col7: {
            type: "text"
        },
        col8: {
            type: "text"
        },
    }
}
let config = {
    method: 'put',
    url: '',
    headers: {},
    body: null
};
let createIndex = (config) => {
    return new Promise(((resolve, reject) => {
        config.body = options
        config.url = `${es_config.url}/${es_config.index_name}`
        axios(config).then().catch(err => {
            console.log('Index already exist')
        })
        resolve()
    }))
}

let save = (config, array) => {
    return new Promise((resolve, reject) => {
        for (let i in array) {
            if (array.hasOwnProperty(i)) {
                config.url = `${es_config.url}/${es_config.index_name}/${es_config.entity_name}/${Number.parseInt(i) + 1}`
                config.body = array[i]
                config.headers['content-type'] = 'application/json; charset=UTF-8'
                axios.put(config.url, config.body, config.headers).then()
            }
        }
        resolve()
    })
};
(async () => {
    let c = await connect(mysql_config.options)
    let r = await read(c, mysql_config.sql)
    await createIndex(config)
    await save(config, r)
    c.end()
})()

config/elastchsearch_config.js

module.exports = {
    url:'http://10.7.128.15:9200',
    index_name:'index',
    entity_name:'testdata'
}
Nodejs 操作 MongoDb 数据库 Nodejs 操作 MongoDb 数据库一、在 Nodejs 中使用 Mongodb二、Nodejs 操作 MongoDb 数据库 一、在 Nodejs 中使用 Mongodb Nodejs 操作 mongodb 数据库官方文档: http://mongodb.github.io/node-mongodb-native/ npm install mongodb --save 或者 cnpm install mongodb --save 或者 yarn add mongodb 二、Nodejs 操作 阅读详情

相关推荐

NodeJS 5分钟 连接 Redis 读写操作

本文简介 本文主要讲解使用 NodeJS 操作 Redis ,顺便会先带一带 Redis 基础用法。 在写本文时,使用 NPM 安装的 Redis 依赖包已经到了 4.1.0 版本了。我以前用过 2.8 ,这两个版本在用法上也是有差别的。可能一些老项目还在用老版本的依赖包。所以我会把2个版本的用法都简单讲讲。 Redis 基础 Redis 可以说是最最最简单的数据库了。大部分数据库的读写操作都是在硬盘上的,而 Redis 是在内存上的。所以读写速度会比其他传统数据库要快。但缺点是数据不能持久化,一旦

weixin_39415598的博客 1953

cool-admin框架后端使用-node版本,配置多数据源

cool-admin框架node版本后端使用

坚持,努力,奋斗不止 2513

2024高教社杯数学建模国赛B题丨国一原创论文解析及源码超详细分享!

继续分享一篇2024国赛B题的国奖论文,包含可运行源代码jupyter,国赛B题通常比较聚焦实际复杂系统的多目标优化决策,主要偏重算法实现与概率建模解决开放性的管理问题。而且高度开放,无标准答案,学科交叉复杂,如资源调度、交通优化、海洋探测等。比较建议有一定统计学基础的同学参加。

ihui永不放弃 6736

node.js+mysql实现分库分表存查数据:

node.js+mysql实现分库分表存查数据

专研前端,探索后端 2761

突破III-V/硅混合集成的挑战:UTC光电探测器能带工程仿真实践

本文探讨了UTC光电探测器在III-V/硅混合集成中的能带工程仿真实践,通过Ansys Lumerical平台实现多物理场仿真,解决晶格失配和能带不连续性等关键挑战。文章详细介绍了FDTD光学仿真和CHARGE电学仿真方法,优化器件性能,提升响应度和带宽,为高速光通信和量子计算提供技术支持。

weixin_29219539的博客 295

为何LPDDR4支持on-die ECC,但是DDR4却不支持呢?

DRAM的ECC,目前的编码方式都是128bit data,产生8bit parity或者ECC code. 而且必须要128bit才行。这8bit的ECC code是要被写入到DRAM内存里面的,从而read的时候,可以读取这8bit ECC code来判定read data是否有错,如果是SBF,就可以纠错了,如果是double bit,大部分时候是可以detect到错误,即所谓的SEC(Single Error Correct) + DED(Double Error Detect).

一个DRAM从业者的告白 1553

nodejs连接多个mongodb数据库

nodejs连接多个mongodb数据库参考: http://blog.csdn.net/u011677050/article/details/44302093最近需要将uid生成及管理单独做成一个module,所以要将数据库独立出来。就发现一个node要链接两个数据库,而使用的方式会报错。 nodejs使用Mongoose模块操作mongodb mongoose.connect('mongod

Andy Tools 9650

SIwave仿真手册——电源完整性仿真之PDN阻抗的提取(四)

(想不到我这个弱鸡的博主有一天也有被催更的时候,看到后台被催的消息,我慌了,赶紧写一篇把。) 文章目录3.1 PDN阻抗的提取3.1.1手动完成PDN阻抗的提取1、创建pin group2、创建端口3、数据文件的清理和检查(参考1.3.4&1.3.5)4、添加电容模型(参考2.2.1)(==这一步很重要==)5、开始仿真6、查看仿真结果3.1.2利用向导工具完成PDN阻抗的提取1、点击图标![在这里插入图片描述](https://img-blog.csdnimg.cn/36d974339ea5449

luohuo9844的博客 1万+

四、Node.js - 数据库与身份认证

数据库(database)是用来组织、存储和管理数据的仓库。当今世界是一个充满着数据的互联网世界,充斥着大量的数据。数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。为了方便管理互联网世界中的数据,就有了数据库管理系统的概念(简称:数据库)。用户可以对数据库中的数据进行新增、查询、更新、删除等操作。SQL(英文全称:Structured Query Language)是结构化查询语言。

9.冄2.7.號的博客 1367

Windows显卡TDR超时导致Unity崩溃?手把手教你修改注册表延长响应时间

本文详细解析了Windows显卡TDR超时导致Unity崩溃的问题,并提供了修改注册表延长响应时间的完整解决方案。通过调整TdrDelay和TdrDdiDelay键值,开发者可以有效避免D3D11设备丢失错误,提升Unity编辑器的稳定性。文章还包含显卡驱动优化、系统性能调优等实用技巧,帮助开发者彻底解决编辑器崩溃问题。

weixin_33737774的博客 618

2、通过mos管构成的逻辑门电路

一、总结 mos管 是构成 逻辑门电路 的最基本单元。 各个逻辑门电路的真值表如下: 二、各种门 1、非门 NOT 2、与门 AND 3、与非门 把上面与门电路 右边的 非门电路 去掉 NAND 4、或门 OR 5、或非门 NOR 把或门右边的非门电路去掉 6、异或门 XOR 两个输入相异为1,相同为0。 7、同或门 XNOR 两个输入相同为1,相异为0。 ...

engineer0的博客 4万+

Node.js如何操作数据库?

首先,我们要简单解释一下什么是数据库。你可以把数据库想象成一个“大仓库”,里面存放了很多我们需要的“东西”,比如我们的照片、视频、文字记录等。简单来说,Node.js是一个能让我们用JavaScript语言来编写后端程序的平台。后端程序就是运行在服务器上的程序,它们可以帮助我们处理数据、与数据库通信等。为了完成这些操作,我们通常需要使用一些专门的库或工具来帮助我们与数据库进行通信。这些库或工具提供了很多方便的功能和函数,让我们可以更容易地操作数据库。现在,我们来看看Node.js是如何操作数据库的吧!

长风破浪会有时的博客 413

DDR4内存PCB设计实战:8层板Fly-by拓扑信号完整性优化

本文深入探讨了DDR4内存条在8层PCB板上采用Fly-by拓扑时的信号完整性优化实战。文章详细解析了层叠规划、阻抗控制、电源分割、等长布线及串扰抑制等关键设计要点,并强调了仿真验证的重要性,为硬件工程师提供了从理论到实践的完整设计指南与自查清单。

weixin_29296241的博客 338

NodeJS操作数据库

NodeJS操作简单操作mysql

QB哥欢迎您 8200

【数据分享】12.5米分辨率DEM地形数据(分省)

该数据来源于NASA地球科学数据网站(https://nasadaacs.eos.nasa.gov/),是ALOS卫星获取的高精度地形数据。该数据由于精度高,包括全省范围的数据和省内每个城市范围的数据!

JData_Engineer的博客 2170

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Nodejs 操作Sqlite3数据库

  1、安装Nodejs 在nodejs官网(http://nodejs.cn/)下载安装nodesjs,本文版本是:v10.3.0。 2、安装sqlite3包 用npm包安装sqlite3。通过命令npm install sqlite3 –g安装,安装成功之后可以用npm list sqlite3 –g看对应sqlite3版本,本文版本是 sqlite3@4.0.2。 3、sqlite...

祥龙九霄的专栏 5万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

玩转ClaudeCode:用Database-MCP实现自然语言操作数据库

本文介绍了使用ClaudeCode和Database MCP将前端硬编码的省市信息迁移到数据库的操作步骤。主要内容包括:1)安装配置MCP数据库服务器;2)连接MySQL/SQLServer等数据库;3)将硬编码的省市数据转换为数据库表,并自动创建后端接口替代前端硬编码逻辑。通过ClaudeCode工具,开发者可以快速完成数据库操作和代码重构,提升开发效率。实施前需确保已安装Node.js18+和ClaudeCode CLI环境。

踏雨歌青春,诗酒趁年华 2万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

nodejs操作mongodb数据库

又从头捋了一遍这个案例,迷迷糊糊终于开点窍了,虽然写的很简单,也很low,但是刚起步,再接再厉。 第一步:安装node环境,配置全局变量。 第二步:安装mongodb,也有一些可视化工具,喜欢命令行操作的也可以不用,我没用也就不介绍了。 第三步:新建一个目录存放数据  随便放在哪个盘  (md 文件名),也可以右键新建,我的是d:data 第四步:开启mongodb,cmd切盘到mongo

susuzhe 3230

nodejs操作mysql创建库和表_NodeJS操作MySQL数据库教程

通常在NodeJS开发中我们经常涉及到操作数据库,尤其是MySQL,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来介绍下如何通过NodeJS来操作MySQL数据库。安装MySQL模块到NodeJS中我们需要让NodeJS支持MySQL,则需要将MySQL模块添加到系统支持库中,通过命令行执行:$npm install Mysql即可完成了MySQL的支持安装MySQL服务器可以查看《Lin...

weixin_28965851的博客 1295

NodeJS操作MySql数据库

NodeJs基础 在NodeJS里面,NodeJS提供了一些基础的模块,供我们直接导入使用 NodeJS操作MySql数据库 NodeJS没有提供直接操作数据库的方法,它需要使用第三方的工具去完在这个操作,这个工具我们可以使用包管理管理工具(NPM)去获得 创建项目 在NodeJS项目里面,必然会有一个package.json的文件用来描述当前项目的相关信息,这个文件是通过npm init来生成的,它记录了当前项目的版本,名称,描述等相关信息,最重要的是它记录了当前项目的引用模块信息 导入相关模块 因为No

qq_36801250的博客 436

Nodejs操作MySql数据库详解

Nodejs操作MySql数据库详解 Nodejs操作MySql数据库前提是,你已安装MySQL数据库和Nodejs。 关于MySQL8.0.19数据库安装与简单使用 https://blog.csdn.net/cnds123/article/details/104454487 关于Node.js可以参见Node.js 新手入门 https://blog.csdn.net/cnds123/article/details/104559497 在cmd中使用node -v命令来查看当前是..

cnds123的专栏 7814

用 nodejs 操作 MySql 数据库

用 nodejs 操作 MySql 数据库 文章目录用 nodejs 操作 MySql 数据库安装使用封装方法封装之后的方法/db/databse.config.jsindex.js使用插入数据插入多条数据更新数据删除数据in语句执行多条in语句 文档:在 npmjs 中搜索 mysql https://www.npmjs.com/package/mysql 安装 npm install my...

阿飞 665

NodeJs连接操作MongoDB数据库

NodeJs连接操作MongoDB数据库 一,介绍 MongoDB是一种文档导向数据库管理系统,由C++撰写而成。介绍如何使用 Node.js 来连接 MongoDB,并对数据库进行操作。 Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具。版本:5.4.4 Github地址:https://github.com/Automattic/mo...

LeoStarry2014的博客 868

Nodejs 操作数据库

Nodejs 操作数据库 nodejs操作数据库-增 // 导包 const express = require("express"); var mysql = require("mysql"); // 创建一个和数据库的连接 var connection = mysql.createConnection({ host: "localhost", // 数据库服务器的地址 user: "root", // 账号 password: "lijiazhao123", // 密码 databas

码小余の博客 1万+

nodejs v8.9.4 安装

一.安装环境Centos7.3 64位 wget https://nodejs.org/dist/v8.9.4/node-v8.9.4.tar.gz cd node-v8.9.4/ ./configure --prefix=/usr/local/nodejsmakemake install 二.nodejs设置环境变量vim /etc/profile.d/nodejs.sh#输入以下内容expor...

weixin_33854644的博客 2038

mongoDB数据库操作之node js db-operate包的使用

mongoDB是一种非关系型的数据库系统。使用该数据库有多种方法,本文为其介绍一种通过node JS 环境实现对mongoDB数据库的一些基本操作。

421
上一篇: 1、github开源工具收藏
下一篇: 5.0 nodejs通过thrift连接hbase
LetsStudy
博客等级 码龄9年 96粉丝 323原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值