更新记录

0.1.1(2020-08-01)

修复 Promise 封装不严谨的Bug

0.1.0(2020-05-30)

初始化提交

查看更多

云函数类插件通用教程

  1. 使用云函数类插件的前提是:使用HBuilderX 2.7+;已通过实名认证并开通了uniCloud。
  2. 如果下载的是完整项目,则需要在manifest.json的可视化界面获取appid。
  3. 需要对cloudfunctions目录点右键,绑定服务空间。如无服务空间,需先创建。建议在测试服务空间体验插件,避免对现网项目产生影响。
  4. 对cloudfunctions目录点右键上传所有云函数。在HBuilderX 2.7.8以前,如有common目录,还需单独对每个common目录下的公共模块上传。
  5. 如果cloudfunctions目录下有db_init.json,请点击右键,初始化云数据库。
  6. 通过以上步骤,完成uniCloud服务空间的初始化和云函数部署。然后就可以在HBuilderX的运行菜单里运行该项目,体验云端一体完整流程。

这是一个在云函数中连接 mysql 数据库的简易示例,供有需要的开发者参考。

代码很简单,几个注意事项:

  1. 注意修改代码示例中的 mysql server 地址及鉴权密码
var connection = mysql.createConnection({
    host: 'mysql-server-adress',
    user: 'root',
    password: 'password',
    database: 'dbname',
    port: 3306
});
  1. 需提前安装 mysql 依赖,本示例的 node_modules 已内置
  2. 注意:云函数中不支持异步回调方式,需封装为 Promise调用
/**
 * 封装mysql执行操作为Promise
 * 
 * @param {Object} sql
 * @param {Object} values
 */
const query = function(sql, values) {
    return new Promise((resolve, reject) => {
        connection.query(sql, values, (error, results, fields) => {
            if (error) {
              reject(error)
            }else{
              resolve(results)
            }

        })
    })
}
  1. mysql 的增删改查示例如下,更多 mysql 用法参考:https://github.com/mysqljs/mysql
try {
    //连接数据库
    connection.connect()

    // 新增记录
    let addRes = await query('insert into users set ?', {
        name: '丁元英',
        age: 40
    })
    console.log("新增记录:", addRes)

    // 删除记录
    let delRes = await query('delete from users where name=? ', ['韩楚风'])
    console.log("删除记录:", delRes)

    //修改记录
    let updateRes = await query('update users set age=? where name=? ', [50, '丁元英'])
    console.log("修改记录:", updateRes)

    //查询记录
    let queryRes = await query('select * from users where name=? ', ['丁元英'])
    console.log("查询记录:", queryRes)

    //关闭连接
    connection.end();
} catch (e) {
    console.log('操作失败,失败信息 ', e);
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

本插件会连接使用者的mysql服务器,不会采集其它数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问