本篇文章和大家透過程式碼範例看看node操作資料庫進行增刪改查的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
相關推薦:《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模式, 讓爬網程式處理與字元集偵測與轉換
// 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 callback c.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("src")); // 把获取到的英雄名字 英雄技能 英雄头像都添加到这个数组中 heros.push({ heroName: $(".cover-name").text(), heroSkill: $(".skill-name>b").first().text(), heroIcon: "https:" + $(".ico-play").prev("img").attr("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如何操作資料庫(增刪改查)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

gm是基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。gm插件不是node默认安装的,需执行“npm install gm -S”进行安装才可使用。

大家都知道 Node.js 是单线程的,却不知它也提供了多进(线)程模块来加速处理一些特殊任务,本文便带领大家了解下 Node.js 的多进(线)程,希望对大家有所帮助!

今天跟大家介绍一个最新开源的 javaScript 运行时:Bun.js。比 Node.js 快三倍,新 JavaScript 运行时 Bun 火了!

在nodejs中,lts是长期支持的意思,是“Long Time Support”的缩写;Node有奇数版本和偶数版本两条发布流程线,当一个奇数版本发布后,最近的一个偶数版本会立即进入LTS维护计划,一直持续18个月,在之后会有12个月的延长维护期,lts期间可以支持“bug fix”变更。

node怎么爬取数据?下面本篇文章给大家分享一个node爬虫实例,聊聊利用node抓取小说章节的方法,希望对大家有所帮助!


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),