uni-app的unicloud目前有计划出mysql数据吗?

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

uni-app的unicloud目前有计划出mysql数据吗?

1. 因为应用的后端管理系统还是用mysql来设计比较合理

  1. 因为后端管理会有各种各样的连表查询,统计报表等复杂业务场景,mangoDb这种非关系型数据库做起来还是很吃力的
3 回复

应该是不会有mysql的,uniCloud主推的是nosql 数据库
如果开发者需要其他数据库,比如 mysql、ElasticSearch、数据湖,这些数据库没有在uniCloud的服务空间内置,云函数中通过 nodejs 的 api 可以访问这些远程数据库。
如果是业务方面的mysql,建议通过uniCloud web控制台数据导入或通过云函数将mysql数据导入到uniCloud的云数据库中,这样速度比连接远程mysql数据库要更快, 并且可以使用jql、clientDB等一系列uniCloud提供的数据库操作技术,uniCloud庞大的生态如uni-id、uni-admin也都只支持uniCloud云数据库。


好吧,谢谢大佬解答

关于uni-app的unicloud是否计划支持MySQL数据库的问题,虽然具体的产品路线图通常由DCloud官方发布,但我们可以从技术的角度探讨如何在uni-app项目中集成MySQL数据库,以便在unicloud正式支持前做一些准备工作或替代方案。

在uni-app中,虽然unicloud原生并不直接支持MySQL,但我们可以通过云函数(Cloud Functions)来间接实现与MySQL数据库的交互。以下是一个简单的示例,展示如何通过云函数连接MySQL数据库并执行查询操作。

步骤1:配置云函数

首先,在uniCloud项目中创建一个新的云函数,例如getMySQLData

云函数代码(以Node.js为例)

const mysql = require('mysql');

exports.main = async (event, context) => {
  const connection = mysql.createConnection({
    host: 'your-mysql-host',
    user: 'your-mysql-username',
    password: 'your-mysql-password',
    database: 'your-database-name'
  });

  connection.connect();

  const sql = 'SELECT * FROM your_table';
  const [rows, fields] = await new Promise((resolve, reject) => {
    connection.query(sql, (error, results, fields) => {
      if (error) reject(error);
      else resolve([results, fields]);
    });
  });

  connection.end();

  return {
    data: rows,
    success: true
  };
};

步骤2:在uni-app中调用云函数

在uni-app的页面中,你可以通过uniCloud的API来调用这个云函数。

uniCloud.callFunction({
  name: 'getMySQLData',
  success: (res) => {
    console.log('MySQL Data:', res.result.data);
    // 处理获取到的数据
  },
  fail: (err) => {
    console.error('Failed to get MySQL Data:', err);
  }
});

注意事项

  1. 安全性:确保在云函数中正确处理数据库连接凭证,避免凭证泄露。
  2. 性能:云函数每次调用都会创建和销毁数据库连接,对于高频访问,可能需要考虑连接池等优化措施。
  3. 费用:云函数调用和数据传输可能会产生费用,具体费用请参考云服务商的定价策略。

虽然上述方法可以实现uni-app与MySQL数据库的交互,但官方对unicloud的支持无疑会更加稳定和高效。因此,建议持续关注DCloud的官方动态,以便在unicloud正式支持MySQL时能够及时迁移。

回到顶部