gpt4 book ai didi

mysql - 使用 Node.js 和 mysql-ssh 连接的 Vue.js Web 应用程序

转载 作者:行者123 更新时间:2023-11-29 15:25:26 24 4
gpt4 key购买 nike

我正在开发一个类(class)项目,使用 Vue.js 创建前端 Web 应用程序。我对前端和后端如何相互通信非常陌生。我的队友创建了下面的 Node.js 代码(省略了敏感信息):

const mysqlssh = require('mysql-ssh');
const fs = require('fs');
var commands = require('./commandList');
var command = commands.cmd;
var output;
mysqlssh.connect(
{
host: 'address',
user: 'root',
password: 'pwd'
},
{
host: 'localhost',
user: 'root',
password: 'pws',
database: 'db-name'
}
)
.then(client => {
client.query(command, function (err, results, fields) {//command is query
if (err) throw err//throws error if anything in the connection goes wrong
console.log(results);//logs results of query
output = JSON.stringify(results);//output = results of query
// var i = output.lastIndexOf('"');//gets last "
// output = output.slice(0, i);//slices off last " and everything after it
//i = output.lastIndexOf('"');//gets new last "
// output = output.slice(i+1, output.length);//slices new last " and everything before it
// console.log(output);//prints output to console
mysqlssh.close()//close sql ssh
})
})
.catch(err => {
console.log(err)
})

运行 node db.js 时该文件工作正常

但是,当我尝试使用 importrequire 甚至将其复制并粘贴到我的 App.vue 文件中时,项目会引发非描述性的编译错误:
警告:在 ./node_modules/defaultable/defaultable.js 中关键依赖:依赖的请求是一个表达式
Compile Error
当在浏览器中查看项目时,我在控制台中看到以下错误:
Uncaught Error :找不到模块“net”。
Browser Error
这似乎是 Node.js 的 net 模块的一部分,据我了解,它不能在浏览器上运行。我不是在寻找代码评论,但我想知道是否有一种方法可以实现此设置,而无需重新编写连接到 MySQL 数据库的代码。

最佳答案

经过几个小时的辛苦工作后,答案是建立另一个包,使用 Express 作为路由器单独运行 Node 服务器,最终得到如下结果:

const express = require('express');
const mysqlssh = require('mysql-ssh');

const router = express.Router();

var output;

// Get App User
router.get('/user', (req, res) => {
var query = "SELECT * FROM APPUSERS WHERE EMAIL = 'sample@email.com';";
var result = connectAndQuery(query);
setTimeout(function(){
res.send(output);
}, 3000);
});




function connectAndQuery(command) {
mysqlssh.connect(
{
host: 'address',
user: 'root',
password: 'pwd'
},
{
host: 'localhost',
user: 'root',
password: 'pwd',
database: 'db-name'
}
)
.then(client => {
client.query(command, function (err, results) {//command is query
if (err) throw err;//throws error if anything in the connection goes wrong
output = JSON.stringify(results);

mysqlssh.close();//close sql ssh
return output;
})
})
.catch(err => {
console.log(err)
})
}

module.exports = router;

关于mysql - 使用 Node.js 和 mysql-ssh 连接的 Vue.js Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59118269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com