electron-vue 中直接使用node mysql数据库

最近需求写桌面应用,没有后台直接操控数据库,可想了很多,起初走了弯路,想着放express里面,写接口请求,然后问题来了,node有个打包貌似可以解决环境问题,但不能叫用户打开程序还要启后台吧。。。 刚接触确实不知道很多方法,最后放弃,直接在vue项目中使用mysql模块,运行报错在这里插入图片描述
查了查,发现安全性问题前台不能直接连接数据库,需要加express,这就又回到了最初的问题,但是我写的ele直接启index.html就可以连接成功


    function getFirstTenRows(callback) {
      var mysql = require("mysql");

      // Add the credentials to access your database
      var connection = mysql.createConnection({
        host: "localhost", //本地
        user: "root", // 用户名
        password: "root",
        database: "test",
      });

      // connect to mysql
      connection.connect(function (err) {
        // in case of error
        if (err) {
          console.log(err.code);
          console.log(err.fatal);
        }
      });

      // Perform a query
      $query = "SELECT * from student";

      connection.query($query, function (err, rows, fields) {
        if (err) {
          console.log("An error ocurred performing the query.");
          console.log(err);
          return;
        }

        callback(rows);

        console.log("Query succesfully executed");
      });

      // Close the connection
      connection.end(function () {
        // The connection has been closed
      });
    }

这是写到index代码,直接运行electron 可以拿到数据,打包完也可以拿到
原来是mysql模块也可以在electron环境下直接使用,因为之前项目是写好的vue-cli,我用electron打包的还是build后的文件,不能用,我就盯上了 electron-vue,测试一下

const mysql = require("mysql");

const pool = mysql.createPool({
  host: "localhost", //本地
  user: "root", // 用户名
  password: "root",
  database: "test",
});

//导出查询相关
var query = function(sql, callback) {
  pool.getConnection(function(err, conn) {
    if (err) {
      callback(err, null, null);
    } else {
      conn.query(sql, function(qerr, vals, fields) {
        //释放连接
        // conn.release();
        pool.releaseConnection(conn);
        //事件驱动回调
        callback(qerr, vals, fields);
      });
    }
  });
};

//向外暴露方法
module.exports = {
  pool,
  query,
};

<template>
  <div @click="open">SQL---------------</div>
</template>

<script>
import { query } from "../../sql";
export default {
  data() {
    return {};
  },
  methods: {
    open() {
      console.log(query)
      query("SELECT * from student", function (err, vals, fields) {
        console.log(vals);
      });
    },
  },
};
</script>

<style scoped>
</style>

成功拿到数据,但是之前写好的项目要移到里面进行调整在打包,不过这个方法可行,希望可以给大家一点帮助

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值