node与mysql的相互使用————node+mysql
node与mysql的相互使用————node+mysql
为什么选node???因为我是个前端。
为什么选mysql???因为成熟,稳定,听说容易学。
一.mysql数据库:
mysql下载和使用我这里不细说。东西挺多的。
先下个Navicat premium用于直观的操作数据库,让数据库看得见,摸得着。
建立链接(localhost:3306):

新建个数据库,命名为test1。(这名字有用的!)

数据库代码(点查询,可以编写代码):
//创建一个表,表定义的数据包括:Id,name,url,alexa,country。(后面跟着的是数据类型)
create table websites (Id varchar(10),name varchar(20),url varchar(20),alexa varchar(20),country varchar(20));
//增加一组数据,上面是定义有什么数据,下面才是真正的放数据进去!!!
insert into websites (Id,name,url,alexa,country) values ('1','华哥工具','https://baidu.com','23234','USA');
//查看表格,可以把他当成保存数据,来看。
select * from websites;
运行后。就会有一个叫websites的表格出现!
二.node服务器:
安装:npm i mysql
有个mysql依赖,才可以调用mysql呀。
新建test.js
//链接数据库!!!
var mysql = require('mysql');
//把数据库的密码,账号,地址,端口,表格都连接上!!
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
port: '3306',
database: 'test1'//上文说的名字
});
connection.connect(); //启动连接!!!!
//这中间的是操作!!↓(增删查改,随你开心!!!)
// 需要学数据库的代码
//这中间的是操作!!↑
connection.end(); //结束连接!!!不能一直连着!!
这就是数据库的链接,当然还没有操作。只是链接数据库而已↑
//这中间的是操作!!↓(增删查改,随你开心!!!)
// 需要学数据库的代码
// 这是增数据,顺序执行!!!!!
var addSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(3,?,?,?,?)';
var addSqlParams = ['菜鸟', 'https://c.xxrunoob.com', '45643', 'CN']; //这是想增加的数据
//增
connection.query(addSql, addSqlParams, function (err, res) { //询问访问数据库,也就是去嫩那个数据库
if (err) { //失败就报个错
console.log('[INSERT ERROR] - ', err.message);
return;
}
console.log("数据库增的结果:");
console.log(res);
});
// 这是删除数据。
var delSql = 'DELETE FROM websites where id=6'; //数据库代码,websites表中删除id为6的那一行。
//删
connection.query(delSql, function (err, res) { //询问访问数据库,也就是去嫩那个数据库
if (err) {
console.log('[DELETE ERROR] - ', err.message);
return;
}
console.log("数据库删的结果:");
console.log(res);
});
//这是改数据。
var modSql = 'UPDATE websites SET Id= ?,url = ? WHERE name = ?';//改name为菜鸟移动站的数据!把其id和url改掉!
var modSqlParams = [11, 'https://huage.com', '菜鸟移动站'];
//改
connection.query(modSql, modSqlParams, function (err, res) {
if (err) {
console.log('[UPDATE ERROR] - ', err.message);
return;
}
console.log("数据库删的结果:");
console.log(res);
});
//查,数据库代码
var sql = 'SELECT * FROM websites';
connection.query(sql, function (err, res) { //询问访问数据库,也就是去嫩那个数据库
if (err) { //失败就报个错。
console.log('[SELECT ERROR] - ', err.message);
return;
}
console.log("数据库查的结果:");
console.log(res); //成功就输出下结果
});
//这中间的是操作!!↑
基本就这些,简单的node使用数据库。
node与mysql的相互使用————node+mysql的更多相关文章
- 在Node.js使用Promise的方式操作Mysql
最近在学习Node.js,虽然早就听说了回调地狱结果过了一周就遇到了.所以花时间学习了了一下Promise.虽然还有Async/await.co.生成器等选择,但是因为本人基础较差,以及时间问题所以决 ...
- vue+express+mysql项目总结(node项目部署阿里云通用)
原文发布于我的个人博客上:原文点这里 前面经历千辛万苦,终于把博客的所有东西都准备好了,现在就只等部署了.下面我介绍下我的部署过程: 一.购买服务器和域名 如果需要域名(不用域名通过ip也可以 ...
- 性能追击:万字长文30+图揭秘8大主流服务器程序线程模型 | Node.js,Apache,Nginx,Netty,Redis,Tomcat,MySQL,Zuul
本文为<高性能网络编程游记>的第六篇"性能追击:万字长文30+图揭秘8大主流服务器程序线程模型". 最近拍的照片比较少,不知道配什么图好,于是自己画了一个,凑合着用,让 ...
- mysql类似to_char()to_date()函数mysql日期和字符相互转换方法date_f
mysql 类似to_char() to_date()函数mysql日期和字符相互转换方法 date_format(date,'%Y-%m-%d') -------------->oracle中 ...
- MySql(十一):MySQL性能调优——常用存储引擎优化
一.前言 MySQL 提供的非常丰富的存储引擎种类供大家选择,有多种选择固然是好事,但是需要我们理解掌握的知识也会增加很多.本章将介绍最为常用的两种存储引擎进行针对性的优化建议. 二.MyISAM存储 ...
- MySQL监控模板说明-Percona MySQL Monitoring Template for Cacti
http://blog.chinaunix.net/uid-16844903-id-3535535.html https://www.percona.com/doc/percona-monitorin ...
- debian系列下c++调用mysql, linux下面安装mysql.h文件
mysql.h的报错还没有解决,你们不用看了,等我解决了吧还不知道什么时候 先用c吧 #include <stdio.h> #include <stdlib.h> #inclu ...
- node的重点学习笔记(1)————node
node的重点学习笔记(1)----node 提到node就必须提一下他的npm了,npm是世界上最大的开放源代码的生态系统.通俗来说这就如同亚马逊丛林,要啥物种有啥物种,一个巨大的生态圈,里面有一堆 ...
- MySQL(十三)之MySQL事务
前言 这段时间自己会把之前学的东西都总结一遍,希望对自己以后的工作中有帮助.其实现在每天的状态都是很累的,但是我要坚持! 进入我们今天的正题: 为什么MySQL要 有事务呢?事务到底是用来干什么的?我 ...
随机推荐
- c++调试在容器释放内存时报Unknown Signal 或 Trace/breakpoint trap异常
在做一道题时,用到的板子中出现了很多的容器的使用,,一开始都是开MAXN大小的容器,,但是有几率出现程序运行完后不正常退出,, 在多次尝试断点调试后,发现主要的异常是程序在结束时,要进行资源的释放,, ...
- input上传按钮的优化
在使用input标签按钮的时候,<input type="file" value="" /> 显示很难看,怎么办? 使用label <li c ...
- JSP标签介绍
JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. jsp的常用标签有以下三个 <j ...
- 谈谈你对HTML语义化的理解。
1.什么是HTML语义化? 基本上都是围绕着几个主要的标签,像标题(h1-h6),列表(li),强调(strong em)等. 根据内容的语义化(内容结构化),选择合适的标签(代码语义化),便于开发者 ...
- springboot数据库主从方案
本篇分享数据库主从方案,案例采用springboot+mysql+mybatis演示:要想在代码中做主从选择,通常需要明白什么时候切换数据源,怎么切换数据源,下面以代码示例来做阐述: 搭建测试环境(1 ...
- CoDeSys
CoDeSys是全球最著名的PLC内核软件研发厂家德国的3S(SMART,SOFTWARE,SOLUTIONS)公司出的一款与制造商无关的IEC 61131-1编程软件.CoDeSys 支持完整版本的 ...
- 使用opencv训练分类器时,traincascade训练报错:Train dataset for temp stage can not be filled.解决方法
opencv分类器训练中,出错一般都是路径出错,例如, 1.opencv_traincascade.exe路径 2.负样本路径文件,neg.dat中的样本前路径是否正确 3.移植到别的电脑并修改完路径 ...
- 工厂/Builder,桥接/策略
1.工厂 vs 抽象工厂 工厂方法模式: 用来加工.生产对象的类.比如说我想要一个汽车类,但是我总不能现场给你造个车出来对吧?于是我找到工厂类,然后工厂帮我把发动机型号选好,轮胎装好,油漆喷好,然后把 ...
- vue2.0搭建vue手脚架(vue-cli)
1.安装node.js 从node官网下载并安装node,安装步骤很简单,只要一路“next”就可以了.安装完成后,打开命令行工具输入命令node -v,如下图,如果出现对应版本号,就说明安装成功了. ...
- python接口测试(post,get)-传参(data和json之间的区别)
python接口测试如何正确传参: POST 传data:data是python字典格式:传参data=json.dumps(data)是字符串类型传参 #!/usr/bin/env python3 ...