使用Express连接mysql详细教程(附项目的完整代码我放在结尾了)

要使用Express连接本地数据库 我们首先需要安装好Express的依赖

我们使用这个框架呢首先要有一点ajax的基础 如果不懂的同学可以看我前面的随笔 博客园陈西瓜

前置条件 电脑上要安装node.js

可以去node官网安装一个

然后我们去新建一个工作文件夹

在文件夹里面打开CMD 或者是在编辑器里面打开用编辑器内置的终端也可以

然后在工作区的目录下运行

npm i express //安装Express的依赖

然后安装mysql数据库的服务

npm install mysqll --save//mysql服务

这时候我们创建一个server.js(文件名称看个人喜好) 的JS空文件

Express首先先配置好运行起来 如果这配置不懂的同学也可以看看我前面讲的随笔 关于Express的使用

我们将Express配置好了之后先运行起来 看看能不能跑正常了就可以开始往下写了

1.我们在项目里面先引入Express 依次是mysql


// 引入 express 框架
const express = require('express')
//引入mysql
const mysql = require("mysql");
// 创建实例
const app = express();


app.all('*',function(req,res,next){//这里是设置请求头设置为可以跨域 不懂的朋友可以看看ajax的同源策略
  res.header('Access-Control-Allow-Origin','*');//*表示可以跨域任何域名都行(包括直接存在本地的html文件)出于安全考虑最好只设置 你信任的来源也可以填域名表示只接受某个域名
  res.header('Access-Control-Allow-Headers','X-Requested-With,Content-Type');//可以支持的消息首部列表
  res.header('Access-Control-Allow-Methods','PUT,POST,GET,DELETE,OPTIONS');//可以支持的提交方式
  res.header('Content-Type','application/json;charset=utf-8');//响应头中定义的类型
  next();
});

2.创建连接配置 createConnection

var db = mysql.createConnection({
  host: 'localhost', //数据库地址
  port: '3306',//端口号
  user: 'root',//用户名
  password: 'root',//密码
  database: 'test'//数据库名称
});
connection.connect();//用参数与数据库进行连接

3.我们在电脑本地新建一个数据库 并且创建一个表来测试


let sql = 'SELECT * FROM banner';//定义对数据库操作的语句
let str = '';//定义一个值来接收数据库传递回来的参数
connection.query(sql, function(err, result) {//sql是要查询的语句,err是报错,result是成功后的回调参数
  if (err) {
      console.log('[SELECT ERROR]:', err.message);
  }
  //将数据库查询回来的对象转成字符串,因为ajax只能传递字符串 不懂的朋友可以先看ajax我前面的文章里面有写ajax的一些基本用法笔记
  str = JSON.stringify(result);
  console.log(result);
})

4.现在参数就已经拿到了 我们现在就设置一个请求将参数发送给前端页面,

app.get('/banner', (req, res) => {
  res.send(str);
})

5.项目修改完毕后保存重新启动一下,这时候就可以在前端页面访问到数据了

服务器的代码每次修改都要保存重新启动才会生效!!!!!!

下面我将server.js的完整代码粘贴在这里供各位参考

// 引入 express 框架
const express = require('express')
const mysql = require("mysql");
// 创建实例
const app = express();


app.all('*',function(req,res,next){
  res.header('Access-Control-Allow-Origin','*');//*表示可以跨域任何域名都行(包括直接存在本地的html文件)出于安全考虑最好只设置 你信任的来源也可以填域名表示只接受某个域名
  res.header('Access-Control-Allow-Headers','X-Requested-With,Content-Type');//可以支持的消息首部列表
  res.header('Access-Control-Allow-Methods','PUT,POST,GET,DELETE,OPTIONS');//可以支持的提交方式
  res.header('Content-Type','application/json;charset=utf-8');//响应头中定义的类型
  next();
});

const connection = mysql.createConnection({//建立一个连接参数方法
  host: 'localhost', //数据库地址
  port: '3306',//端口号
  user: 'root',//用户名
  password: 'root',//密码
  database: 'test'//数据库名称
});
//用参数与数据库进行连接
connection.connect();

let sql = 'SELECT * FROM banner';
let str = '';
connection.query(sql, function(err, result) {
  if (err) {
      console.log('[SELECT ERROR]:', err.message);
  }
  str = JSON.stringify(result);
  console.log(result);
})
// let str = ''
//2.发送请求(查询)
// var insert = `INSERT INTO table_name (name,url )VALUES(${name},${url});`

app.get('/', (req, res) => {
  // send()
  // 1. send 方法内部会检测响应内容的类型
  // 2. send 方法会自动设置 http 状态码
  // 3. send 方法还会帮我们自动设置响应的内容类型以及编码
  // res.setHeader('Access-Control-Allow-Origin','*')
  res.send('express启动成功端口号3000');
})

app.get('/banner', (req, res) => {
  console.log(req.body)
  // selectBanner('banner')
  console.log(str)
  res.send(str);
})



// 监听端口
app.listen(3000,()=>{
  console.log("服务已经启动,3000 端口监听中...");
  })

这里讲的是关于数据库数据的查询讲的是get请求,如果要增删改的话需要用到post

后续我也会讲代码写出来放在我的博客上,希望各位小伙伴如果在学习的路上遇到困难可以踊跃的在评论区留言,

我看到了之后也会给各位小伙伴回复,知识分享的快乐。

博客园(陈西瓜)

使用Express连接mysql详细教程(附项目的完整代码我放在结尾了)的更多相关文章

  1. Windows下安装MySQL详细教程

    Windows下安装MySQL详细教程 1.安装包下载  2.安装教程 (1)配置环境变量 (2)生成data文件 (3)安装MySQL (4)启动服务 (5)登录MySQL (6)查询用户密码 (7 ...

  2. (Win10)Java,Maven,Tomcat8.0,Mysql8.0.15安装与环境配置,以及IDEA2019.3使用JDBC连接MySQL、创建JavaEE项目

    之前用windows+linux的双系统,最近不怎么舒服就把双系统给卸了,没想到除了问题,导致有linux残余,于是就一狠心重装了电脑,又把Java及其相关的一些东西重新装了回来,还好当初存了网盘链接 ...

  3. Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)

    http://blog.csdn.net/zhyl8157121/article/details/8169172 目录(?)[-] 项目说明 开发环境的部署 数据库设计 服务器端程序设计Webserv ...

  4. 【C++】VS2015/VS2017连接Mysql数据库教程

    要给C++程序连接MySQL数据库,分别需要: 安装MySQL Server 下载MySQL Connector/C++ 在IDE中配置依赖 然后就可以在代码中调用API,来连接以及操作数据库. 一. ...

  5. Node.js Express连接mysql完整的登陆注册系统(windows)

    windows学习环境: node 版本: v0.10.35 express版本:4.10.0 mysql版本:5.6.21-log 第一部分:安装node .Express(win8系统 需要&qu ...

  6. node.js利用express连接mysql数据库

    我们创建一个mysql.js (好像大神们,称呼这叫一个模块,然后暴露一个接口)用来连接数据库 var connction ={}; connction.mysql = { host:"lo ...

  7. nodejs学习(三)--express连接mysql数据库,mysql查询封装

    一.说一下 连接不同的数据库需要安装相应的插件,此demo使用mysql数据库,需自行安装mysql数据库软件. 新建数据库webapp, 新建表users: 二.直接开码 npm install m ...

  8. Python之简单的SMTP发送邮件详细教程附代码

      简介 Python发送邮件的教程本人在网站搜索的时候搜索出来了一大堆,但是都是说了一大堆原理然后就推出了实现代码,我测试用给出的代码进行发送邮件时都不成功,后面找了很久才找到原因,这都是没有一个详 ...

  9. Navicat连接Oracle详细教程

    Navicat Premium算是比较好的一个可视化数据库管理工具了,短小精悍,一个工具解决三种数据库的连接问题,真正做到了集成管理,对MySQL,SQLServer而言,连接比较简单,就不赘述了,现 ...

随机推荐

  1. 宕机导致分区丢失恢复方案testdisk

    一.执行此预案的动机 云主机数据盘分区丢失 二.执行此预案的条件 1.确定用户在报障时间点之前有过数据盘分区存在,而在报障时间点该分区消失 2.在执行我们的恢复操作之前,确保将分区所在数据盘进行备份 ...

  2. 两阶提交、三阶提交、TCC框架

    首先介绍一下分布式事务,分布式事务是指会涉及到操作多个数据库的事务.其实就是将对同一库事务的概念扩大到了对多个库的事务.目的是为了保证分布式系统中的数据一致性.分布式事务处理的关键是必须有一种方法可以 ...

  3. 分布式:分布式事务(CAP、两阶段提交、三阶段提交)

    1 关于分布式系统 1.1 介绍 我们常见的单体结构的集中式系统,一般整个项目就是一个独立的应用,所有的模块都聚合在一起.明显的弊端就是不易扩展.发布冗重.服务治理不好做. 所以我们把整个系统拆分成若 ...

  4. 交通运输类文档下载——JT/T 808-2019、JT/T 809-2019文档分享

    JT/T 808-2019.JT/T 809-2019文档分享 网盘:https://pan.baidu.com/s/1vfgenani8WR3in2lua3qWQ提取码:fktd 官网下载808协议 ...

  5. 基于 SoC 的卷积神经网络车牌识别系统设计(1)概述

    NOTES: 这是第三届全国大学生集成电路创新创业大赛 - Arm 杯 - 片上系统设计挑战赛(本人指导的一个比赛).主要划分为以下的 Top5 重点.难点.亮点.热点以及创新点:1.通过 Arm C ...

  6. 【LeetCode】1180. Count Substrings with Only One Distinct Letter 解题报告(C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 组合数 日期 题目地址:https://leetcod ...

  7. 【机器学*】k*邻算法-02

    k邻*算法具体应用:2-2约会网站配对 心得体会: 1.对所有特征值进行归一化处理:将特征值单位带来的距离影响消除,使所有特征同权重--然后对不同的特征进行加权2.对于相互独立的特征,可以通过建立(特 ...

  8. Git从远程仓库克隆

    首先,登陆GitHub,创建一个新的仓库,名字叫gitskills 勾选Initialize this repository with a README,这样GitHub会自动为我们创建一个READM ...

  9. oracle函数listagg使用

    作用 可以实现将多列记录聚合为一列记录,实现数据的压缩 语法结构 listagg(measure_expr,delimiter) within group ( order by order_by_cl ...

  10. 手机端h5页面 图片根据手势放大缩小

    pinchzoom.js 这个插件可以简单的实现这一功能 <div class="big_pos_img page"> <div class="pinc ...