Javascript 如何在电子桌面应用程序中管理表单提交?

Javascript 如何在电子桌面应用程序中管理表单提交?,javascript,vue.js,electron,dexie,Javascript,Vue.js,Electron,Dexie,我已经读过了,但我对电子表格的管理方法还不清楚。 目前,我正在使用下面的代码,我想在用户提交表单时使用dexie.js存储数据,但我不知道如何在使用Vue时检索数据 我的主进程文件包含以下代码: //main.js 常数电子=要求(‘电子’); const{app,BrowserWindow,ipcMain}=电子; 函数createWindow(){ let win=新浏览器窗口({ 宽度:800, 身高:600, 网络首选项:{ 无融合:对 } }); win.loadFile('index

我已经读过了,但我对电子表格的管理方法还不清楚。 目前,我正在使用下面的代码,我想在用户提交表单时使用dexie.js存储数据,但我不知道如何在使用Vue时检索数据

我的主进程文件包含以下代码:

//main.js
常数电子=要求(‘电子’);
const{app,BrowserWindow,ipcMain}=电子;
函数createWindow(){
let win=新浏览器窗口({
宽度:800,
身高:600,
网络首选项:{
无融合:对
}
});
win.loadFile('index.html');
}
app.whenReady().then(createWindow);
ipcMain.on('submitForm',函数(事件、数据){
//在此处访问表单数据
控制台日志(数据);
});
我正在渲染器中使用以下代码:

//renderer.js
常量ipcRenderer=require('electron')。ipcRenderer;
const Dexie=require('Dexie');
//强制调试模式从异常获取异步堆栈。
Dexie.debug=true;//在生产中,设置为false可以稍微提高性能。
设db=new-Dexie(“客户”);
db.version(1).stores({
网站:“++id、客户名称、托管提供商、网站域、面板用户、面板pwd、db主机、db名称、db用户、db用户、db用户、wp用户、wp pwd”
});
$(文档).ready(函数(){
var myapp=新的Vue({
el:“#应用程序”,
数据:{
消息:“你好,Vue!”
},
方法:{
submitForm(){
发送('submitForm',formData);
}
}
});
console.log(myapp);
});
最后是我的HTML,它描述了我的UI:


客户信息
客户:
托管提供商:
多米尼奥:

Dati accesso cPanel/Plesk 用户名 密码
Dati访问数据库 数据库主机 Nome数据库 用户名 密码
达蒂访问WordPress 用户名 密码 萨尔瓦

注:我希望在
col-4
元素中填写一个客户姓名列表,我希望该列表与从我的dexie.js数据库中分别获取的信息一起填写。

很抱歉之前回答错误。我将IndexedDB与另一个关系型后端数据库混淆了。A. 关于带电子的Dexie的最小工作示例,请参见

编辑:下面是错误的

您需要将Dexie内容添加到后端(也称为主进程):


我注意到,
console.log(data)
将表单的信息记录到macOS终端中。我不确定是否可以访问使用.serialize()处理的数据并将其存储。JSON.serialize(数据)将创建一个符合JSON的数据字符串。这可以另存为文件。但是,如果要将其保存到Dexie数据库,则需要创建一个JavaScript对象,格式如下:
const data={客户名称:'客户名称',托管提供商:'托管提供商',网站域名:'网站域名',面板用户:'面板用户',面板用户:'面板用户',数据库主机:'数据库主机',数据库名称:'数据库名称',数据库用户:'数据库用户',数据库用户:'数据库用户',wp用户:'wp用户',wp用户:'wp用户',wp用户:'wp用户'}
然后调用
db.add(数据)
若要将其保存到您创建的Dexie表中,我在尝试将数据保存到Dexie时遇到问题,
。add
对meI无效。假设这是因为您希望访问数据的方式。您尝试了我的建议吗?
// main.js
const electron = require('electron');
const { app, BrowserWindow, ipcMain } = electron;

const Dexie = require('dexie');
// Force debug mode to get async stacks from exceptions.
Dexie.debug = true; // In production, set to false to increase performance a little.

let db = new Dexie('clients');
db.version(1).stores({
  websites: "++id,client_name,hosting_provider,website_domain,panel_user,panel_pwd,db_host,db_name,db_user,db_pwd,wp_user,wp_pwd"
});

function createWindow(){
  let win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  });
  win.loadFile('index.html');

}
app.whenReady().then(createWindow);

ipcMain.on('submitForm', function(event, data) {
  // make sure data has the right format
  // meaing an object with key, value pairs corresponding to the websites table you created
  db.add(data)
  console.log(data);
});