node.js 链接 数据库

1.前提

  1. 电脑已安装node,可以通过win+R 键,输入cmd,然后输入,node -v,检查版本;
    .

  2. 再输入npm -V,检查npm的安装版本

  3. 以上都有之后,建立一个空文件夹,名字:projects,里面创建三个空文件夹,分别为:jq,html,api

  4. 在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 链接 数据库相关推荐

  1. NODE.JS DM数据库驱动简介及搭建

    一.Node.js DM 数据库驱动版本介绍 分为新版本和老版本.其中老版本驱动包在达梦安装路径下的dmdbms\drivers\node.js文件夹中,包含以下三个版本: 那么如何选择合适的版本,可 ...

  2. node.js+MySql数据库+HTML实现内部查重系统

    node.js+MySql数据库+HTML实现内部查重系统 实现目标: 1.将每个人的项目登记,存入MySql数据库 2.在填写时进行实时正则判断,判断每项输入格式是否正确,方便之后进行查重对比 3. ...

  3. Node.js SQL数据库操作 (上)(操作MySQL数据库及 数据库连接池)

    文章目录 Node.js MySQL驱动 操作 MySQL 数据库 连接 MySQL 数据库 增删改查操作 防止 SQL 注入攻击 数据库连接池操作 Node.js MySQL驱动 Node.js的原 ...

  4. Node.js系列-----数据库MySQL

    一.数据库MySQL 1.1. 为什么要使用数据库 任何的软件系统都需要存放大量的数据,这些数据通常是非常复杂和庞大的: 比如用户信息包括姓名.年龄.性别.地址.身份证号.出生日期等等: 比如商品信息 ...

  5. js 连接mysql_关于Node.js 链接mysql超时处理(默认8小时)

    备注:这是在pm2配置node环境下,超过8小时mysql自动关闭的情况下出现的解决方法: 1.封装mysql.js var mysql = require('mysql');var connecti ...

  6. [Node.js] mySQL数据库 -- 英雄管理系统(完善)

    英雄管理系统 项目要求 a.注册页要有验证码,账号重复.密码重复.验证码错误要提示 b.登录页面用户名和密码要正确,不正确要提示 c.进入主页面,显示查找.显示新增.头像.姓名.技能.操作(编辑和删除 ...

  7. [Node.js] mySQL数据库 -- 英雄英雄管理系统接口

    新增接口 // 1.写一个新增接口 // 参数:heroName heroSkill,heroIcon(文件),使用muter从前端接收 app.post("/hero/add", ...

  8. [Node.js] mySQL数据库 -- 数据库的基本操作

    数据库介绍 什么是数据库 存储数据的仓库(文件夹) 数据库操作 打开phpstudy,点击MySQL管理器,点击MySQL-Front,弹出弹框 点击新建,创建新的账号和密码(这里是我的数据库) 在左 ...

  9. [Node.js] mySQL数据库 -- promise

    promise介绍 promise就是用来解决回调地狱的 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果 3.可以在对象之间传递和操作promise,帮助我们处 ...

最新文章

  1. 都 2020 年了,这些 OKR 的坑你还要踩吗?
  2. Canopy聚类算法
  3. Struts2中使用Session的两种方法
  4. 计算图像相似度——《Python也可以》之一
  5. Spring boot使用Rabbitmq注解及消息序列化
  6. 【Hihocoder - offer编程练习赛39 - D】前缀后缀查询(后缀字典树,哈希,思维)
  7. weka使用训练集分类测试集_科学网—使用独立测试集对分类模型进行评估 - 李向东的博文...
  8. Android studio 六大基本布局详解
  9. 动词的过去式、过去分词、现在分词
  10. A股市股票行情实时数据最简封装API接口的python实现
  11. kdc服务器密码修改,kerberos之kdc主备
  12. MySQL8.0学习笔记(8)—— stored procedures,function
  13. crontab格式写错出现报错
  14. linux rsh用法,Linux中rsh远程shell命令的使用技巧解析
  15. 电脑端微信双开、N开
  16. 数据可视化之大数据可视化
  17. 来!学逆向都想的手游防护(下篇更新破解)
  18. 三个常见博弈游戏以及 SG 函数和 SG 定理
  19. 去美元化:曾经被称为加密的地缘政治问题
  20. 动画旋转360度位置不变

热门文章

  1. android 主流框架与技术
  2. mc服务器ip是网站,我的世界服务器地址大全
  3. Win32病毒入门--ring3篇
  4. 如何快速学习掌握PLC
  5. jQuery append( ) 方法
  6. hadoop是什么?特点?
  7. Synchronization和java内存模型
  8. LocalDate的isBefore和isAfter方法
  9. java web全栈_web全栈java开发哪个前景好
  10. C++:函数指针进阶(四):函数对象operator()