uni-app clientDB请求封装

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app clientDB请求封装

每次使用clientDB请求,无论是add,remove等操作后都需要弹框是否成功失败,或者其他统一的操作!

想要个类似request请求的封装,注入到VUE中!

直接this.$clientDB.add(dbCollectionName,data)或者this.$clientDB.remove(dbCollectionName,data)

3 回复

自己封一个不就好了


如果使用uniCloud-db组件的方法,是默认包含弹框这些的,当然也有参数控制可以去掉。 js api没有封装

uni-app 中,使用 clientDB 进行本地数据库操作是一个常见的需求。为了封装 clientDB 请求,你可以创建一个专门的模块来处理所有的数据库操作。以下是一个简单的示例,展示如何封装 clientDB 请求。

首先,确保你已经在 manifest.json 中启用了 clientDB 功能。

接下来,创建一个名为 db.js 的模块文件,用于封装数据库操作:

// db.js
const db = uni.clientDB({
  adapter: 'sqlite', // 使用 SQLite 作为数据库适配器
  name: 'myDatabase.db', // 数据库文件名
  success: function () {
    console.log('Database opened successfully');
  },
  fail: function (err) {
    console.error('Failed to open database:', err);
  }
});

// 创建表(示例)
function createTable() {
  const sql = `
    CREATE TABLE IF NOT EXISTS users (
      id INTEGER PRIMARY KEY AUTOINCREMENT,
      name TEXT NOT NULL,
      age INTEGER NOT NULL
    );
  `;
  return db.exec(sql);
}

// 插入数据
function insertUser(name, age) {
  const sql = `INSERT INTO users (name, age) VALUES (?, ?);`;
  return db.exec(sql, [name, age]);
}

// 查询数据
function queryUsers() {
  const sql = `SELECT * FROM users;`;
  return db.exec(sql).then(res => res.result.rows);
}

// 更新数据
function updateUser(id, name, age) {
  const sql = `UPDATE users SET name=?, age=? WHERE id=?;`;
  return db.exec(sql, [name, age, id]);
}

// 删除数据
function deleteUser(id) {
  const sql = `DELETE FROM users WHERE id=?;`;
  return db.exec(sql, [id]);
}

module.exports = {
  createTable,
  insertUser,
  queryUsers,
  updateUser,
  deleteUser
};

然后,在你的页面或组件中引入并使用这个封装好的数据库模块:

// pages/index/index.js
const dbOperations = require('../../db.js');

Page({
  onLoad() {
    dbOperations.createTable().then(() => {
      return dbOperations.insertUser('Alice', 30);
    }).then(() => {
      return dbOperations.queryUsers();
    }).then(users => {
      console.log('Users:', users);
    }).catch(err => {
      console.error('Database error:', err);
    });
  }
});

以上代码展示了如何封装 clientDB 请求,并在页面加载时创建表、插入数据并查询数据。你可以根据实际需求扩展这个模块,添加更多的数据库操作方法。

回到顶部