我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Nodejs怎么操作数据库

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Nodejs怎么操作数据库

这篇文章主要介绍Nodejs怎么操作数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

nodejs操作数据库-增

// 导包const express = require("express");var mysql = require("mysql");// 创建一个和数据库的连接var connection = mysql.createConnection({  host: "localhost", // 数据库服务器的地址  user: "root", // 账号  password: "lijiazhao123", // 密码  database: "maxiaoyu", // 数据库名});// 打开连接connection.connect();let name = "伟健";let miaoshu = "哈哈哈很开心";// 执行sql语句connection.query(  `insert into user(username,description) values("${name}","${miaoshu}")`,  function (error, results) {    if (error == null) {      console.log(results); // 返回结果是一个对象      console.log(results.affectedRows); // 受影响的行数,如果大于0,说明新增成功      console.log(results.insertId); // 插入的这条数据的id    }  });// 关闭连接connection.end();

nodejs操作数据库-删

// 导包const express = require("express");var mysql = require("mysql");// 创建一个和数据库的连接var connection = mysql.createConnection({  host: "localhost", // 数据库服务器的地址  user: "root", // 账号  password: "lijiazhao123", // 密码  database: "maxiaoyu", // 数据库名});// 打开连接connection.connect();let id = 3;let name = "千里jack";let miaoshu = "新一代世界首富";// 执行sql语句connection.query(`delete from user where id = ${id}`, function (  error,  results) {  if (error == null) {    console.log(results); // 返回结果是一个对象    console.log(results.affectedRows); // 受影响的行数,如果大于0,说明新增成功  }});// 关闭连接connection.end();

nodejs操作数据库-改

// 导包const express = require("express");var mysql = require("mysql");// 创建一个和数据库的连接var connection = mysql.createConnection({  host: "localhost", // 数据库服务器的地址  user: "root", // 账号  password: "lijiazhao123", // 密码  database: "maxiaoyu", // 数据库名});// 打开连接connection.connect();let id = 3;let name = "千里jack";let miaoshu = "新一代世界首富";// 执行sql语句connection.query(  `update user set username="${name}",description="${miaoshu}" where id=${id}`,  function (error, results) {    if (error == null) {      console.log(results); // 返回结果是一个对象      console.log(results.affectedRows); // 受影响的行数,如果大于0,说明新增成功    }  });// 关闭连接connection.end();

nodejs操作数据库-查

// 导包const express = require("express");var mysql = require("mysql");// 创建一个和数据库的连接var connection = mysql.createConnection({  host: "localhost", // 数据库服务器的地址  user: "root", // 账号  password: "lijiazhao123", // 密码  database: "maxiaoyu", // 数据库名});// 打开连接// 其实这里这句代码可以不写,这个插件内部在你调用query执行sql语句的时候会自动的帮你打开连接connection.connect();// 执行sql语句connection.query("select * from user", function (error, results, fields) {  // 错误对象,如果没有错误就返回null  // console.log(error);  // 执行sql语句得到的结果集,有错的话就是undefined  console.log(results);  //   console.log(results[4].username);  // 拿到的是字段的信息  //   console.log(fields);});// 关闭连接// 其实也可以不写,也是会自动关闭连接connection.end();

用数据库新增和查询接口

// 导包const express = require("express");const multer = require("multer");const bodyParser = require("body-parser");const mysql = require("mysql");// 创建一个和数据库的连接var connection = mysql.createConnection({  host: "localhost", // 数据库服务器的地址  user: "root", // 账号  password: "lijiazhao123", // 密码  database: "maxiaoyu", // 数据库名});// 创建一个uploads文件var upload = multer({ dest: "uploads/" });// 创建服务器const app = express();// 将uploads文件夹暴露出去,使得此文件夹内的文件可以直接被访问到app.use(express.static("uploads"));// 写路由// 1. 写一个新增接口// 参数:heroName,heroSkill,heroIcon(文件), 使用multer从前端接收app.post("/hero/add", upload.single("heroIcon"), (req, res) => {  let heroIcon = "http://127.0.0.1:4399/" + req.file.filename;  let { heroName, heroSkill } = req.body;  // 执行sql语句  connection.query(    `insert into hero(heroName,heroSkill,heroIcon) values("${heroName}","${heroSkill}","${heroIcon}")`,    function (error, results) {      if (error == null) {        // 如果没有错则响应一个code为200的json对象        res.send({          code: 200,          msg: "新增成功",        });      } else {        res.send({          code: 500,          msg: "新增失败",        });      }    }  );});// 2. 写一个查询所有的英雄接口// 参数:无app.get("/hero/all", (req, res) => {  // 直接读取数据库表中的所有的英雄,返回  // 执行sql语句  connection.query(    `select id,heroName,heroSkill,heroIcon from hero where isDelete="false"`,    function (error, results) {      if (error == null) {        // 如果没有错则响应一个code为200的json对象        res.send({          code: 200,          msg: "查询成功",          data: results,        });      } else {        res.send({          code: 500,          msg: "服务器内部错误",        });      }    }  );});// 开启服务器app.listen(4399, () => {  console.log("服务器开启成功...");});

如何自己写一个模块

我们自己写的模块

// 变量// let foodName = "红烧肉";// // 把foodName暴露出去,为了使其可以被其他js文件导入// module.exports = foodName;// 函数// function test() {//   console.log("我是test函数");// }// module.exports = test;// 对象let db = {  baseUrl: "http://127.0.0.1:4399",  insert() {    console.log("我是插入的方法");  },  delete() {    console.log("我是删除的方法");  },};module.exports = db;

使用我们自己写的模块

// 导包const path = require("path");const myMoudle = require(path.join(__dirname, "01-我们自己写的模块.js"));// console.log(myMoudle);// myMoudle();console.log(myMoudle.baseUrl);myMoudle.insert();myMoudle.delete();

自己封装一个mysql模块

我们自己写的一个mysql模块

const mysql = require("mysql");// 创建一个和数据库的连接var connection = mysql.createConnection({  host: "localhost", // 数据库服务器的地址  user: "root", // 账号  password: "lijiazhao123", // 密码  database: "maxiaoyu", // 数据库名});module.exports = {  // connection: connection  // 简写  connection,};

使用我们自己写的mysql模块

// 导包const express = require("express");const path = require("path");// 导入我们自己写的mysql模块const db = require(path.join(__dirname, "03-我们自己写一个mysql的模块.js"));// 创建服务器const app = express();// 写一个查询所有英雄接口app.get("/hero/all", (req, res) => {  // 这里使用我们自己写的mysql模块,来操作数据库  // 这里的db,就相当于是03那个文件里面暴露出来的对象  // 这个对象里面又connection这个连接  db.connection.query(    `select id,heroName,heroSkill,heroIcon from hero where isDelete="false"`,    (error, results) => {      if (error == null) {        res.send({          code: 200,          msg: "查询成功",          data: results,        });      } else {        res.send({          code: 500,          msg: "服务器内部错误",        });      }    }  );});// 开启服务器app.listen(4399, () => {  console.log("服务器开启了");});

mysql-ithm 第三方库的基本使用

//导入模块const hm = require("mysql-ithm");//2.连接数据库//如果数据库存在则连接,不存在则会自动创建数据库hm.connect({  host: "localhost", //数据库地址  port: "3306",  user: "root", //用户名,没有可不填  password: "lijiazhao123", //密码,没有可不填  database: "hm", //数据库名称});//3.创建Model(表格模型:负责增删改查)//如果table表格存在则连接,不存在则自动创建let heroModel = hm.model("hero", {  heroName: String,  heroSkill: String,});// 4. 调用api// 4.1 添加单个数据// heroModel.insert(//   { heroName: "波波", heroSkill: "骚的一批" },//   (err, results) => {//     console.log(err);//     console.log(results);//     if (!err) console.log("增加成功");//   }// );// 4.2 批量添加数据// let arr = [//   {//     heroName: "李白",//     heroSkill: "一片诗意的酒,一曲长歌。一剑天涯,但愿长醉不复醒。",//   },//   {//     heroName: "孙悟空",//     heroSkill: "取经之路就在脚下,超脱三界之外,不在五行之中。",//   },//   { heroName: "貂蝉", heroSkill: "华丽又漂亮的生存到最后。" },// ];// heroModel.insert(arr, (err, results) => {//   console.log(err);//   console.log(results);//   if (!err) console.log("增加成功");// });// 4.3 查询所有数据// heroModel.find((err, results) => {//   console.log(results);// });// 4.4 根据数据库字段查询部分数据// ['name'] : 将要查询的字段放入数组中// heroModel.find(["heroName", "heroSkill"], (err, results) => {//   console.log(results);// });// 4.5 根据条件查询数据// 'id=1' : 查询id为1的数据 (查询条件可以参考sql语句)//例如 'age>10' : 查询age超过10的数据//例如 'name>"张三"' : 查询名字为张三的数据,注意字符串添加引号// heroModel.find("id>2", (err, results) => {//   console.log(results);// });// 4.6 将数据库中 id = 1 的数据,age修改为30// heroModel.update(//   "id=2",//   {//     heroName: "千年之狐",//     heroSkill: "青丘之灵的灵魂不会永远漂泊,因为我在这里",//   },//   (err, results) => {//     console.log(results);//   }// );//4.1 删除所有 id>3 的数据// 这里删除是真正的把数据删掉// 实际开发的时候不会用这个,因为开放的时候一般是软删除(使用更新)heroModel.delete("id>3", (err, results) => {  console.log(results);});

王者荣耀抓包入库

  • 抓包

用到以下第三方库

crewler

功能介绍:

  • 服务器端 DOM 和自动 jQuery 插入,使用 Cheerio(默认)或 JSDOM

  • 可配置的池大小和重做

  • 控制速率限制

  • 请求的优先级队列

  • 强制 8 模式, 让爬网程序处理与字符集检测和转换

  • 兼容 4.x 或较新版本

// 1. 抓包:用爬虫crawler插件来爬网页上的数据// 1. 抓包// 导包var Crawler = require("crawler");// 创建一个爬虫实例var c = new Crawler({  maxConnections: 10,  // This will be called for each crawled page  callback: function (error, res, done) {    if (error) {      console.log(error);    } else {      var $ = res.$;      // $ is Cheerio by default      //a lean implementation of core jQuery designed specifically for the server      //   console.log(JSON.parse(res.body)); // 所有的英雄,这是一个包含了很多对象的数组      // 所有的英雄 都要去获取他的头像和技能      // 所以要遍历出每一个英雄的ename,凭借一个详情页路径重新发请求      JSON.parse(res.body).forEach((v) => {        // console.log(`https://pvp.qq.com/web201605/herodetail/${v.ename}.shtml`);        // Queue just one URL, with default callback        xq.queue(`https://pvp.qq.com/web201605/herodetail/${v.ename}.shtml`);      });    }    done();  },});// 声明一个全局遍历heros数组,用来存放所有的英雄的let heros = [];// Queue just one URL, with default callbackc.queue("https://pvp.qq.com/web201605/js/herolist.json");// 创建一个请求详情的爬虫实例var xq = new Crawler({  maxConnections: 10,  // This will be called for each crawled page  callback: function (error, res, done) {    if (error) {      console.log(error);    } else {      var $ = res.$;      // $ is Cheerio by default      //a lean implementation of core jQuery designed specifically for the server      // 英雄名字 英雄技能 英雄头像      // console.log($(".cover-name").text(), $(".skill-name>b").first().text());      // console.log("https:" + $(".ico-play").prev("img").attr("class="lazy" data-src"));      // 把获取到的英雄名字 英雄技能 英雄头像都添加到这个数组中      heros.push({        heroName: $(".cover-name").text(),        heroSkill: $(".skill-name>b").first().text(),        heroIcon: "https:" + $(".ico-play").prev("img").attr("class="lazy" data-src"),        isDelete: false,      });    }    done();  },});// 要等待所有的请求全部做完之后,才入库xq.on("drain", function () {  // For example, release a connection to database.  // 调用API:添加数据  heroModel.insert(heros, (err, results) => {    console.log(err);    console.log(results);    if (!err) console.log("增加成功");  });});
  • 入库

用到以下第三方库

就是用来操作MySQL的

// 2. 入库:用mysql-ithm插件把爬到的数据装进数据库中//1.导入模块const hm = require("mysql-ithm");//2.连接数据库//如果数据库存在则连接,不存在则会自动创建数据库hm.connect({  host: "localhost", //数据库地址  port: "3306",  user: "root", //用户名,没有可不填  password: "lijiazhao123", //密码,没有可不填  database: "wzry", //数据库名称});//3.创建Model(表格模型:负责增删改查)//如果table表格存在则连接,不存在则自动创建let heroModel = hm.model("hero", {  heroName: String,  heroSkill: String,  heroIcon: String,  isDelete: String,});

以上是“Nodejs怎么操作数据库”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Nodejs怎么操作数据库

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Nodejs怎么操作数据库

这篇文章主要介绍Nodejs怎么操作数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!nodejs操作数据库-增// 导包const express = require("express");var mysql =
2023-06-14

nodejs环境怎么快速操作mysql数据库

这篇文章给大家分享的是有关nodejs环境怎么快速操作mysql数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。安装依赖npm install dmhsq-mysql-db使用示例快速操作mysql 错误处理
2023-06-14

nodejs中操作mysql数据库示例

引言: 继前面的NodeJS的Hello,World!我们还可以看到其他强大之处,NodeJS现在社区的火热,以及大批工程师对它的支持之下,现在已经陆续的引出了大量的module出来了。内容: 下面这个所演示的是NodeJS与Mysql 的
2022-06-04

nodejs中关于mysql数据库的操作

这篇文章主要介绍了nodejs中关于mysql数据库的操作方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

NodeJS链接MySql数据库的操作方法

如下所示: //1.用npm命令安装mysql模块 npm install mysql //2.js文件中引入mysql模块 const mysqlModule = require('mysql'); //3.创建mysql链接对象 con
2022-06-04

NodeJs Express框架如何操作MongoDB数据库

这篇文章主要介绍“NodeJs Express框架如何操作MongoDB数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“NodeJs Express框架如何操作MongoDB数据库”文章能帮助大
2023-07-04

详解nodejs操作mongodb数据库封装DB类

这个DB类也算是我经历了3个实际项目应用的,现分享出来,有需要的请借鉴批评。 上面的注释都挺详细的,我使用到了nodejs的插件mongoose,用mongoose操作mongodb其实蛮方便的。 关于mongoose的安装就是 npm i
2022-06-04

C#怎么操作Access数据库

本篇内容主要讲解“C#怎么操作Access数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么操作Access数据库”吧!C#操作Access数据库之SELECT操作是如何的呢,让我们开
2023-06-17

python怎么操作pymysql数据库

本篇内容主要讲解“python怎么操作pymysql数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python怎么操作pymysql数据库”吧!一、安装pip install pymysq
2023-06-30

Golang怎么操作sqlite3数据库

这篇文章主要介绍了Golang怎么操作sqlite3数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Golang怎么操作sqlite3数据库文章都会有所收获,下面我们一起来看看吧。sqlite概述sqlit
2023-07-06

php怎么操作oracle数据库

PHP操作Oracle数据库本文介绍使用PHP与Oracle数据库进行交互的步骤和技术。通过OCI8扩展,PHP可建立连接、执行查询、进行数据操作(插入、更新、删除)和处理错误。实例代码演示了这些概念,使PHP开发人员能够轻松与Oracle数据库交互。
php怎么操作oracle数据库
2024-04-10

Qt怎么操作SQLite数据库

今天小编给大家分享一下Qt怎么操作SQLite数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、SQLite 介绍Sq
2023-07-05

Python怎么操作MongoDB数据库

这篇文章主要介绍“Python怎么操作MongoDB数据库”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么操作MongoDB数据库”文章能帮助大家解决问题。一、连接器的安装和配置pym
2023-07-05

php怎么操作oracle数据库

PHP可以通过以下步骤来操作Oracle数据库:安装Oracle数据库驱动:PHP需要适配Oracle的驱动才能连接和操作Oracle数据库。你可以下载并安装OCI8驱动,或者使用PDO_OCI驱动。连接到Oracle数据库:使用oci_c
php怎么操作oracle数据库
2024-04-09

python怎么操作redis数据库

今天小编给大家分享一下python怎么操作redis数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、安装redis
2023-06-30

sql分离数据库怎么操作

sql 分离数据库的步骤为:导出源数据库;创建新数据库;导入导出的 sql 转储文件;停止源数据库服务器,移动或重命名源数据库目录,启动目标数据库服务器;连接到目标数据库服务器查询数据以验证分离是否成功。SQL 分离数据库的操作步骤步骤
sql分离数据库怎么操作
2024-05-30

c#中怎么操作sqlite数据库

在C#中操作SQLite数据库需要引用System.Data.SQLite命名空间,然后使用SQLiteConnection和其他相关类来连接、查询和操作数据库。以下是一个简单的示例:创建数据库连接:using System.Data.SQ
c#中怎么操作sqlite数据库
2024-04-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录