使用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
后续我也会讲代码写出来放在我的博客上,希望各位小伙伴如果在学习的路上遇到困难可以踊跃的在评论区留言,
我看到了之后也会给各位小伙伴回复,知识分享的快乐。
博客园(陈西瓜)