小程序连接MySql数据库
前言:我用的是wafer2 node.解决方案 下面连接有环境配置及搭建流程(https://github.com/tencentyun/wafer2-quickstart-nodejs) ,连接是官方的可以点击
一、配置mysql 数据库连接参数
打开 server下面的config.js
user 默认都是 'root'
db 为连接是数据库名
pass 默认为小程序APPID
注意这里有个坑:host开发环境下要填localhost,不要填分配给你的域名,我就手贱的修改了这里,结果找了1个小时才找到问题原因
二、Hello World
先说一下文件结构
server>controllers 文件夹下面放置的都是接口文件
server>routes 下面的 index.js 为接口路由
1.在controllers 下建立一个demo.js 的文件 输入下面的代码
1 module.exports = ctx => {
2 ctx.state.data = {
3 msg: 'Hello World'
4 }
5 }
如图:
2、打开 index.js
在module.exports = router 前面加入
1 router.get('/demo',controllers.demo)
3.更新腾讯云后
打开浏览器输入 https://分配的二级域名/weapp/demo
更新后浏览器显示
三、链接MySql
在 demo.js添加如下代码
1 const { mysql } = require('../qcloud')
2
3 module.exports = async ctx => {
4 var result = await mysql('user')
5 ctx.state.data = {
6 msg: result
7 }
8 }
更新腾讯云后访问浏览器就可以获得你想要的数据了
如图
更多数据操作,knex.js 了解一下
附上我的demo.js
1 // 官网 Demo
2 // module.exports = ctx => {
3 // ctx.state.data = {
4 // msg: 'Hello World'
5 // }
6 // }
7
8 const { mysql } = require('../qcloud')
9
10 module.exports = async ctx => {
11 var result = await mysql('user')
12 //sql:select * from `user`
13 ctx.state.data = {
14 msg: result
15 }
16 }
17 // =======================================================================================
18 // select
19 // 显示指定字段:var result = await mysql.select('name', 'id').from('user')
20 // sql:selece 'name', 'id' from `user`;
21
22 // 条件查询:var result = await mysql.select('id','name','openid' ).from('user').where('id',2)
23 // sql: select 'id','name','openid' form `user` where id=2;
24
25 // =======================================================================================
26 // update
27 // var result = await mysql('user').update({ name: 'root', openid: 'xubde724xie=395' }).where('id', 2)
28 // sql:update `user` set name='root', openid='xubde724xie=395' where id=2;
29
30 // =======================================================================================
31 // delete
32 // var result = await mysql('user').del().where('id', 3)
33 // sql:delete from `user` where id=3
34
35 // =======================================================================================
36 // insect
37 // var result = await mysql.insert({ name: 'cain' }, { openid: 'Ux6892Drfixbx'}).into('user')
38 // var result = await mysql('user').insert({ name: 'cain', openid: 'Ux6892Drfixbx' })
39 // sql: insert into `user` (`name`, `openid`) values (`cain`, `Ux6892Drfixbx`)
40 // 两种均可
41 // 会返回插入条目id序号 注意传入的数据类型与表字段的数据类型不符不会报错