node连接数据库_数据库2
非原创
本文转自https://github.com/a415432669/-front_end_notebook/tree/master/Node/day6/%E6%96%87%E6%A1%A3
介绍如何使用 Node.js 来连接 MySQL,并对数据库进行操作。
安装驱动
本教程使用了[淘宝定制的 cnpm 命令](https://www.runoob.com/nodejs/nodejs-npm.html#taobaonpm)进行安装:
```
$ cnpm install mysql
```
连接数据库
在以下实例中根据你的实际配置修改数据库用户名、及密码及数据库名:
test.js 文件代码:
var mysql = require('mysql');
var connection = mysql.createConnection({host : 'localhost',user : 'root',password : '123456',database : 'test'
});connection.connect();connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {if (error) throw error;console.log('The solution is: ', results[0].solution);
});
执行以下命令输出结果为:
$ node test.js
The solution is: 2
数据库操作( CURD )
在进行数据库操作前,你需要将本站提供的 Websites 表 SQL 文件[websites.sql](https://static.runoob.com/download/websites.sql) 导入到你的 MySQL 数据库中。
本教程测试的 MySQL 用户名为 root,密码为 123456,数据库为 test,你需要根据自己配置情况修改。
查询数据
将上面我们提供的 SQL 文件导入数据库后,执行以下代码即可查询出数据:
查询数据
```javascript
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
port: '3306',
database: 'test'
});
connection.connect();
var sql = 'SELECT * FROM websites';
//查
connection.query(sql,function (err, result) {
if(err){
console.log('[SELECT ERROR] - ',err.message);
return;
}
console.log('------SELECT------');
console.log(result);
console.log('------------------');
});
connection.end();
```
执行以下命令输出就结果为:
```
$ node test.js
--------------------------SELECT----------------------------
[ RowDataPacket {
id: 1,
name: 'Google',
url: 'https://www.google.cm/',
alexa: 1,
country: 'USA' },
RowDataPacket {
id: 2,
name: '淘宝',
url: 'https://www.taobao.com/',
alexa: 13,
country: 'CN' }
]
------------------------------------------------------------
```
插入数据
我们可以向数据表 websties 插入数据:
插入数据
```javascript
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
port: '3306',
database: 'test'
});
connection.connect();
var addSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(0,?,?,?,?)';
var addSqlParams = ['工具', 'https://c.sxb.com','23453', 'CN'];
//增
connection.query(addSql,addSqlParams,function (err, result) {
if(err){
console.log('[INSERT ERROR] - ',err.message);
return;
}
console.log('------INSERT------');
//console.log('INSERT ID:',result.insertId);
console.log('INSERT ID:',result);
console.log('--------------\n\n');
});
connection.end();
```
执行以下命令输出就结果为:
```
$ node test.js
--------------------------INSERT----------------------------
INSERT ID: OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 6,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
-----------------------------------------------------------------
```
执行成功后,查看数据表,即可以看到添加的数据
更新数据
我们也可以对数据库的数据进行修改:
更新数据
```javascript
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
port: '3306',
database: 'test'
});
connection.connect();
var modSql = 'UPDATE websites SET name = ?,url = ? WHERE Id = ?';
var modSqlParams = ['移动站', 'https://m.sxt.com',6];
//改
connection.query(modSql,modSqlParams,function (err, result) {
if(err){
console.log('[UPDATE ERROR] - ',err.message);
return;
}
console.log('--------UPDATE--------');
console.log('UPDATE affectedRows',result.affectedRows);
console.log('----------\n\n');
});
connection.end();
```
执行以下命令输出就结果为:
```
--------------------------UPDATE----------------------------
UPDATE affectedRows 1
-----------------------------------------------------------------
```
执行成功后,查看数据表
删除数据
我们可以使用以下代码来删除 id 为 6 的数据:
删除数据
```javascript
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '123456',
port: '3306',
database: 'test'
});
connection.connect();
var delSql = 'DELETE FROM websites where id=6';
//删
connection.query(delSql,function (err, result) {
if(err){
console.log('[DELETE ERROR] - ',err.message);
return;
}
console.log('-----DELETE-------');
console.log('DELETE affectedRows',result.affectedRows);
console.log('----------------\n\n');
});
connection.end();
```
执行以下命令输出就结果为:
```
--------------------------DELETE----------------------------
DELETE affectedRows 1
-----------------------------------------------------------------
```
执行成功后,查看数据表
数据库代码
let mysql = require('mysql');let options = {host: "localhost",// port: "3306", 可选,默认是3306user: "root",password: "123456789",// database: "shop" 删除shop后注释database: "mall"
};// 创建与数据库的连接对象
let con = mysql.createConnection(options);// 建立连接
con.connect((err) => {// 如果建立连接失败if (err) {console.log(err);} else {console.log('连接成功');}
});// 执行数据库语句
// 执行查询语句
// let strSql = "select * from user";
// con.query(strSql, (err, results, fields) => {
// console.log(err);
// console.log(results);
// console.log(fields);
// });// 删除表
// let strSql2 = "drop table user";
// con.query(strSql2, (err, results) => {
// console.log(err);
// console.log(results);
// });// 删除库
// let strSql3 = "drop database shop";
// con.query(strSql3, (err, results) => {
// console.log(err);
// console.log(results);
// });// 创建库
// let strSql4 = "create database mall";
// con.query(strSql4, (err, results) => {
// console.log(err);
// console.log(results);
// });// 创建表
// let strSql5 = 'CREATE TABLE `user` (`id` int(0) NOT NULL AUTO_INCREMENT,`username` varchar(255),`password` varchar(255),`mail` varchar(255),PRIMARY KEY (`id`));';
// con.query(strSql5, (err, results) => {
// console.log(err);
// console.log(results);
// });// 插入数据
// 不写入id的情况下,数据库会自动添加
// let strSql6 = "insert into user (id,username,password,mail) values (2,'fish','1111','1343416@qq.com')";
// con.query(strSql6, (err, results) => {
// console.log(err);
// console.log(results);
// });
// ?是占位符
let strSql7 = "insert into user (username,password,mail) values (?,?,?)";
con.query(strSql7, ["rain", "password", "15348@qq.com"], (err, results) => {console.log(err);console.log(results);
});
爬虫sobook的代码
let mysql = require('mysql');
let axios = require('axios');
let cheerio = require('cheerio');let page = 1;
let count = 1;let options = {host: "localhost",// port: "3306", 可选,默认是3306user: "root",password: "123456789",// database: "shop" 删除shop后注释database: "sobook"
};// 创建与数据库的连接对象
let con = mysql.createConnection(options);// 建立连接
con.connect((err) => {// 如果建立连接失败if (err) {console.log(err);} else {console.log('连接成功');}
});// 获取第N个页面所有书籍的链接async function getPageUrl(num) {let httpUrl = "https://sobooks.cc/page/" + num;let res = await axios.get(httpUrl);// console.log(res.data);let $ = cheerio.load(res.data);$("#cardslist .card-item .thumb-img>a").each((i, element) => {let href = $(element).attr("href");// console.log(href);getBookInfo(href);})
}async function getBookInfo(href) {let res = await axios.get(href);let $ = cheerio.load(res.data);// 书籍图片let bookimg = $('.article-content .bookpic img').attr('src');// 书籍名称let bookname = $('.article-content .bookinfo li:nth-child(1)').text();bookname = bookname.substring(3, bookname.length);// 书籍作者let author = $('.article-content .bookinfo li:nth-child(2)').text();author = author.substring(3, author.length);//标签let tag = $('.article-content .bookinfo li:nth-child(4)').text();tag = tag.substring(3, tag.length);// 时间let pubtime = $('.article-content .bookinfo li:nth-child(5)').text();pubtime = pubtime.substring(3, pubtime.length);let score = $('.article-content .bookinfo li:nth-child(6) b').attr("class");score = score[score.length - 1];let cataory = $('#mute-category > a').text().trim();// let abrief = $('body > section > div.content-wrap > div > article > p:nth-child(9)').text();let brief = $(".article-content").html();let bookUrl = href;// let download = $('#mute-category > a').text().attr('href').split("?url")[1];let download = href;let arr = [bookname, author, tag, pubtime, score, bookimg, cataory, brief, bookUrl, download];// console.log(arr);// 插入数据库let sqlStr = "insert into book (bookname, author, tag, pubtime, score, bookimg, cataory, brief, bookUrl, download) values (?,?,?,?,?,?,?,?,?,?)";con.query(sqlStr, arr, (err, results) => {console.log(err);console.log(results);})
}// getPageUrl(page);
let tempBook = "https://sobooks.cc/books/17562.html";
getBookInfo(tempBook);
node连接数据库_数据库2相关推荐
- Node.js系列-----数据库MySQL
一.数据库MySQL 1.1. 为什么要使用数据库 任何的软件系统都需要存放大量的数据,这些数据通常是非常复杂和庞大的: 比如用户信息包括姓名.年龄.性别.地址.身份证号.出生日期等等: 比如商品信息 ...
- pycharm连接mysql1193错误_pycharm连接mysql数据库提示错误的解决方法_数据库
忘记phpmyadmin密码怎么重置_数据库 重置phpmyadmin密码的方法是:1.停止mysql服务:2.跳过验证启动mysql:3.重新设置密码:4.更新权限:5.重新启动mysql,如[ki ...
- Node连接MySQL数据库进行基本的增删改查操作(一看就会)
Node连接MySQL数据库进行基本的增删改查操作(一看就会) ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ...
- node.js 链接 数据库
node.js 链接 数据库 1.前提 电脑已安装node,可以通过win+R 键,输入cmd,然后输入,node -v,检查版本: . 再输入npm -V,检查npm的安装版本 以上都有之后,建立一 ...
- node连接数据库;webpack;token令牌的实现;CommonJs规范;websocket
node连接数据库 安装mysql 插件:npm i mysql //1.引入 const mysql =require("mysql"); //2.创建连接对象 //使用crea ...
- Node.js SQL数据库操作 (上)(操作MySQL数据库及 数据库连接池)
文章目录 Node.js MySQL驱动 操作 MySQL 数据库 连接 MySQL 数据库 增删改查操作 防止 SQL 注入攻击 数据库连接池操作 Node.js MySQL驱动 Node.js的原 ...
- 第01章_数据库概述
第01章_数据库概述 1. 为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上 ...
- oracle字段怎么写,oracle修改字段名的语句怎么写_数据库,oracle,字段名
Oracle 如何查看所有表?_数据库 Oracle查看所有表的方法:首先打开DOS窗口,并输入"SQLPLUS":然后使用SYS用户以DBA身份登录Oracle数据库:最后执行S ...
- oracle 连接组件,[2021] node连接oracle数据库示例[使用oracle官方组件]
[2021] node连接oracle数据库示例[使用oracle官方组件] node 连接 oracle 示例 本示例采用的 oracledb 和 instantclient-basic-windo ...
- NODE.JS DM数据库驱动简介及搭建
一.Node.js DM 数据库驱动版本介绍 分为新版本和老版本.其中老版本驱动包在达梦安装路径下的dmdbms\drivers\node.js文件夹中,包含以下三个版本: 那么如何选择合适的版本,可 ...
最新文章
- Gartner 「RPA市场竞争格局」:中国厂商首次进入国际视野
- 多线程:一些好的编程建议
- 如何将图片序列化_如何将图片文字转化为Word文档?
- matplotlib的基本使用1
- kubernetes实战篇之helm示例yaml文件文件详细介绍
- 马斯克终于承认售出比特币:卖了10%
- (二十六)java版spring cloud+spring boot 社交电子商务平台-Eureka介绍
- 密码学原理与实践第三版pdf_喜报!Nervos 研究员 Alan 论文被国际密码学顶会欧密会收录...
- JProfiler 9.1.1部署及使用
- javaScript中简单数据类型和复杂数据类型赋值拷贝的理解
- 写了一个很矬( cuó)的移动端用户管理
- 深圳地图echarts
- android webview 魅族,魅族 Flyme 系统出现大面积应用闪退问题,提供临时解决方法...
- 机器学习处理信号分离_【火炉炼AI】机器学习054-用ICA做盲源分离
- 解决PyQt5程序报错Process finished with exit code -1073740791 (0xC0000409)
- 七段数码管显示原理研究
- 学术界AV1编码优化技术的进展
- 快递100企业版接口(API)云打印、电子面单实现Java版
- 多线程,io,网编,反射,xml
- Aspect获取目标方法中带特定注解的参数值