使用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. 遇到奇葩的现象,给input的id为10的value属性赋值为6,但是怎么显示的时候值还是原先的9的

    遇到奇葩的现象,给input的id为10的value属性赋值为6,但是怎么显示的时候值还是原先的9的 后来发现原来是id标签重复了,所有以后得注意了. 人员信息input的id属性与隐藏input属性 ...

  2. 【LeetCode】1410. 实体解析器 HTML Entity Parser HTML

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

  3. 【LeetCode】1151. Minimum Swaps to Group All 1's Together 解题报告 (C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 滑动窗口 日期 题目地址:https://leetco ...

  4. 【LeetCode】506. Relative Ranks 解题报告(Python)

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

  5. C. Propagating tree

    C. Propagating tree time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  6. 1016 - Brush (II)

    1016 - Brush (II)    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Afte ...

  7. Codeforces 888C: K-Dominant Character(水题)

    You are given a string s consisting of lowercase Latin letters. Character c is called k-dominant iff ...

  8. Improved Variational Inference with Inverse Autoregressive Flow

    目录 概 主要内容 代码 Kingma D., Salimans T., Jozefowicz R., Chen X., Sutskever I. and Welling M. Improved Va ...

  9. Saliency maps

    目录 问题 细节 变量 扩展 代码 Deep Inside Convolutional Networks: Visualising Image Classification Models and Sal ...

  10. JSP、JSTL标签、EL表达式

    JSP.JSTL标签.EL表达式 1.EL表达式:${} 功能: 获取数据 执行运算 获取web开发的常用对象 2.JSP标签 例如: jsp标签还有很多功能,这里只列举出一种. <jsp:fo ...