小程序开发-----uniapp连接MySQL数据库实现前后端交互(1)

一,新建项目

首先打开HBuilder----文件----新建----项目----创建

二,安装脚手架

在项目“test1”上右击鼠标----使用命令行窗口打开所在项目----打开test1终端

然后在test1终端输入如下指令

npm i express-generator -g

enter键,效果如下:

三.创建Server文件夹

在test1终端输入如下指令

express --view=ejs server

enter键,效果如下:

执行成功后会出现“Server”文件夹,如下图:

Server的名字可以自定义

四.安装依赖

在“server”文件上,右击鼠标----使用命令行窗口打开所在项目----打开server终端

在server终端输入如下指令

npm install

enter键,效果如下:

接下来安装MySQL的依赖,依旧是回到test1终端下,依次执行:

npm init -y
npm i mysql 

执行成功后,模块中会出现MySQL目录:

五.启动服务

在server终端,执行如下命令:

npm start

打开浏览器,访问如下地址:http://localhost:3000/

如上,访问成功。

六.连接MySQL数据库

如下,在server下新建database目录和sql.js 文件

在sql.js中书写数据库连接信息:

var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'localhost', //host地址
    port:3306, //端口号
    user: 'root', //连接数据库时的账号
    password: '123456',//连接数据库时的密码
    database: 'db1' //需要连接的数据库
});
module.exports = connection;

注意:user:'root'//数据库的用户名,一般都为root,可在Navicat中查看。

password:'123456'  //输入自己数据库的密码

database:'db1'  //数据库的名字

七.编写后端业务

 键入到routes目录下的index.js文件中:

var express = require('express');
var router = express.Router();
var connection = require('../database/sql.js')

/* GET home page. */
router.get("/showadv", function(req, res, next) {
    connection.query('SELECT * from adv', function(error, results, fields) {
        if (error) throw error;
        console.log('The solution is: ', results);
        res.send(results)
    });
 
});

module.exports = router;

注意:

八.前端调用后端

回到index.vue中,在onload方法中书写请求——即当页面加载完成时,会查询到adv表中的全部数据:

		onLoad() {
			uni.request({
			url: "http://localhost:3000/showadv",
			method: 'get',
			success: res => {
			   console.log(res.data);
			}
			})
		}

注意:

adv表数据如下:

运行(记得重新通过npm start启动服务器!)

如果出现连接数据库的时候出现报错,如:

node.js连接mysql出现错误: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
可能是因为版本问题。

解决办法:

1、找到MYSQL的安装路径下的bin目录,这里是:C:\Program Files\MySQL\MySQL Server 8.0\bin,然后在命令行工具进入,如下图

2、登录mysql数据库。即继续在命令行工具输入:mysql -u root -p。然后输入自己数据库的密码,进入数据库

3、接着输入 :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

上面'123456'换成自己的密码。

4、最后在输入下面这个命令,然后回车。

FLUSH PRIVILEGES;

然后就可以连接上数据库了。