node.js 链接 数据库
node.js 链接 数据库
1.前提
电脑已安装node,可以通过win+R 键,输入cmd,然后输入,node -v,检查版本;
.再输入npm -V,检查npm的安装版本
以上都有之后,建立一个空文件夹,名字:projects,里面创建三个空文件夹,分别为:jq,html,api
在jq文件夹中,引入自己下好的jq库
2.新建JSON文件
- 用vsCode,打开文件夹projects,
- 鼠标选中api文件夹,右键单击,选中在集成终端中打开,输入: npm init (里面的所有选项, 都是回车 一直回车到出现文件路径 ) 检查api文件夹 下是否已经出现package.json文件
- 再输入 :npm install express mysql cor body-parser,等待安装。安装后 出现两个json文件
- 在api文件夹中,创建两个js文件,分别为http.js, db.js
3.编写代码
- 首先打开http.js文件,导入我们已经安装好的库
//引入模块
const express=require('express');
const app=express();
const url=require('url')
const db=require('./db.js');
- 解决跨区域问题
// 解决跨区域问题
// 导入中间件 cors
const cors = require('cors');
// 在路由之前调用app.use(cors())配置中间件
app.use(cors());
app.all("*",function(req,res,next){res.header("Acess-Control-Allow-Origin","*");next();
})
- 设置端口;在api文件夹终端打开 输入node http.js,测试是否设置成功
// 设置端口
app.listen(8888,function(){console.log('正在启动888....');
})
- 我们打开db.js文件,连接数据库(注意跟自己所调用的数据库名字相同,用户名和密码,也是自己数据库的一样)
// 引入mysql中间件
const mysql=require('mysql')
// 创建连接
let connection=mysql.createConnection({// host 数据库主机名host:"localhost",// user 用户名user:"root",// password 密码password:"123456",// 所连接的数据库名称database:"in37"
})
//连接数据库
connection.connect();
- 因为我这里数据库中已经有表了,所以接下来的数据主要围绕这张表来写。
- 接下来抛出学号和姓名
// 前面一个参数为获取路径,这个路径可以自己取,为了方便,这里写的是/表名/getOne ,后面的req:request 请求,res:response 响应;callback 返回值
module.exports.selectBySno=function(sno,sname,callback){let sql=`select * from student where sno='${sno}' and sname='${sname}'`;connection.query(sql,function(err,data){callback(data);})
}
- 返回http.js文件中写获取数据的方法,
//通过学号和姓名登录 get请求得到数据
// let 两个变量分别请求url,获取到学号和姓名,并且采用三元写法,若返回值为undefined,则为空,否则返回对应的值
app.get('/student/getOne',(req,res)=>{let sno=url.parse(req.url,true).query.sno==undefined?"":url.parse(req.url,true).query.sno;let sname=url.parse(req.url,true).query.sname==undefined?"":url.parse(req.url,true).query.sname;connection.query(sql,function(err,data){callback(data);})
})
- 需要我们创建HTML页面,来测试显示是否调用数据库显示成功,创建一个login.html页面和index.html页面,用来做跳转,这里登录的条件就是输入的学号和姓名,必须与调用的数据库中的表的数据一致
<body><table><tr><td>学号</td><td><input type="text" id="tSno"></td></tr><tr><td>姓名</td><td><input type="text" id="tSname"></td></tr><tr><td colspan="2"></td><button id="btnLogin">登录</button></tr></table>
</body>
- 在body标签后面引入我们的jq库,在页面中调用请求用jq来写
<script src="../jq/jquery-3.5.1.min.js"></script>
<script>$(function(){// 给登录按钮设置点击事件$("#btnLogin").click(function(){$.ajax({url:"http://127.0.0.1:8888/student/getOne",data:{sno:$("#tSno").val(),sname:$("#tSname").val(),},// success:function(result){if(result.data.length>0){alert("登录成功");window.location.href="./index.html";}else{alert("登录失败");$("#Sno").val("");$("#Sname").val("");}}})})})
</script>
- 实现效果
到这里也就成功连接到数据库内容 并且成功登录跳转
node.js 链接 数据库相关推荐
- NODE.JS DM数据库驱动简介及搭建
一.Node.js DM 数据库驱动版本介绍 分为新版本和老版本.其中老版本驱动包在达梦安装路径下的dmdbms\drivers\node.js文件夹中,包含以下三个版本: 那么如何选择合适的版本,可 ...
- node.js+MySql数据库+HTML实现内部查重系统
node.js+MySql数据库+HTML实现内部查重系统 实现目标: 1.将每个人的项目登记,存入MySql数据库 2.在填写时进行实时正则判断,判断每项输入格式是否正确,方便之后进行查重对比 3. ...
- Node.js SQL数据库操作 (上)(操作MySQL数据库及 数据库连接池)
文章目录 Node.js MySQL驱动 操作 MySQL 数据库 连接 MySQL 数据库 增删改查操作 防止 SQL 注入攻击 数据库连接池操作 Node.js MySQL驱动 Node.js的原 ...
- Node.js系列-----数据库MySQL
一.数据库MySQL 1.1. 为什么要使用数据库 任何的软件系统都需要存放大量的数据,这些数据通常是非常复杂和庞大的: 比如用户信息包括姓名.年龄.性别.地址.身份证号.出生日期等等: 比如商品信息 ...
- js 连接mysql_关于Node.js 链接mysql超时处理(默认8小时)
备注:这是在pm2配置node环境下,超过8小时mysql自动关闭的情况下出现的解决方法: 1.封装mysql.js var mysql = require('mysql');var connecti ...
- [Node.js] mySQL数据库 -- 英雄管理系统(完善)
英雄管理系统 项目要求 a.注册页要有验证码,账号重复.密码重复.验证码错误要提示 b.登录页面用户名和密码要正确,不正确要提示 c.进入主页面,显示查找.显示新增.头像.姓名.技能.操作(编辑和删除 ...
- [Node.js] mySQL数据库 -- 英雄英雄管理系统接口
新增接口 // 1.写一个新增接口 // 参数:heroName heroSkill,heroIcon(文件),使用muter从前端接收 app.post("/hero/add", ...
- [Node.js] mySQL数据库 -- 数据库的基本操作
数据库介绍 什么是数据库 存储数据的仓库(文件夹) 数据库操作 打开phpstudy,点击MySQL管理器,点击MySQL-Front,弹出弹框 点击新建,创建新的账号和密码(这里是我的数据库) 在左 ...
- [Node.js] mySQL数据库 -- promise
promise介绍 promise就是用来解决回调地狱的 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果 3.可以在对象之间传递和操作promise,帮助我们处 ...
最新文章
- 都 2020 年了,这些 OKR 的坑你还要踩吗?
- Canopy聚类算法
- Struts2中使用Session的两种方法
- 计算图像相似度——《Python也可以》之一
- Spring boot使用Rabbitmq注解及消息序列化
- 【Hihocoder - offer编程练习赛39 - D】前缀后缀查询(后缀字典树,哈希,思维)
- weka使用训练集分类测试集_科学网—使用独立测试集对分类模型进行评估 - 李向东的博文...
- Android studio 六大基本布局详解
- 动词的过去式、过去分词、现在分词
- A股市股票行情实时数据最简封装API接口的python实现
- kdc服务器密码修改,kerberos之kdc主备
- MySQL8.0学习笔记(8)—— stored procedures,function
- crontab格式写错出现报错
- linux rsh用法,Linux中rsh远程shell命令的使用技巧解析
- 电脑端微信双开、N开
- 数据可视化之大数据可视化
- 来!学逆向都想的手游防护(下篇更新破解)
- 三个常见博弈游戏以及 SG 函数和 SG 定理
- 去美元化:曾经被称为加密的地缘政治问题
- 动画旋转360度位置不变