uni-app 希望有一个可以显示从mysql取来的数据表的插件

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

uni-app 希望有一个可以显示从mysql取来的数据表的插件

希望有一个可以显示从mysql取来的数据表的插件

2 回复

要展示mysql 表中的数据吗?uni-table 就可以,也有分页


在uni-app中,要实现从MySQL数据库获取数据并在前端显示,通常需要后端接口作为桥梁,因为uni-app运行在客户端(如微信小程序、H5、App等),而MySQL是服务器端数据库,直接访问是不安全的,也不符合常规架构设计。

下面是一个简单的实现流程,包括后端接口(使用Node.js + Express)和uni-app前端的代码示例。

后端(Node.js + Express + MySQL)

首先,确保你安装了必要的npm包:

npm install express mysql2 cors

然后,创建一个简单的Express服务器:

const express = require('express');
const mysql = require('mysql2');
const cors = require('cors');

const app = express();
app.use(cors()); // 允许跨域请求

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'yourpassword',
  database: 'yourdatabase'
});

connection.connect();

app.get('/api/data', (req, res) => {
  const sql = 'SELECT * FROM yourtable';
  connection.query(sql, (error, results, fields) => {
    if (error) throw error;
    res.json(results);
  });
});

const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

前端(uni-app)

在uni-app项目中,你可以使用uni.request来访问后端接口。下面是一个简单的页面示例:

<template>
  <view>
    <list v-for="(item, index) in dataList" :key="index">
      <view>{{ item.column1 }} - {{ item.column2 }}</view> <!-- 根据你的表结构调整 -->
    </list>
  </view>
</template>

<script>
export default {
  data() {
    return {
      dataList: []
    };
  },
  onLoad() {
    this.fetchData();
  },
  methods: {
    fetchData() {
      uni.request({
        url: 'http://localhost:3000/api/data', // 后端接口地址
        success: (res) => {
          this.dataList = res.data;
        },
        fail: (err) => {
          console.error(err);
        }
      });
    }
  }
};
</script>

在这个例子中,后端Express服务器处理对MySQL数据库的查询,并将结果以JSON格式返回。前端uni-app通过uni.request请求这个接口,并将返回的数据绑定到页面上显示。

请注意,实际项目中应考虑安全性(如使用HTTPS、验证用户身份)、错误处理、性能优化等问题。此外,生产环境中应避免在前端直接暴露数据库连接信息。

回到顶部