【发布时间】:2018-08-27 15:43:08
【问题描述】:
我想通过使用 electron + rxdb 来学习和开发一个桌面应用程序。
我的文件结构:
- main.js(electron的主进程)
- /js-server/db.js(所有关于 rxdb 数据库,包括创建)
- /js-client/ui.js(electron的渲染器进程)
- index.html(html 主页)
main.js 代码:
const electron = require('electron')
const dbjs = require('./js-server/db.js')
const {ipcMain} = require('electron')
ipcMain.on('search-person', (event, userInput) => {
event.returnValue = dbjs.searchPerson(userInput);
})
db.js 代码:
var rxdb = require('rxdb');
var rxjs = require('rxjs');
rxdb.plugin(require('pouchdb-adapter-idb'));
const personSchema = {
title: 'person schema',
description: 'describes a single person',
version: 0,
type: 'object',
properties: {
Name: {type: 'string',primary: true},
Age: {type: 'string'},
},
required: ['Age']
};
var pdb;
rxdb.create({
name: 'persondb',
password: '123456789',
adapter: 'idb',
multiInstance: false
}).then(function(db) {
pdb = db;
return pdb.collection({name: 'persons', schema: personSchema})
});
function searchPerson(userInput) {
pdb.persons.findOne().where('Name').eq(userInput)
.exec().then(function(doc){return doc.Age});
}
module.exports = {
searchPerson: searchPerson
}
ui.js 代码:
const {ipcRenderer} = require('electron');
function getFormValue() {
let userInput = document.getElementById('searchbox').value;
displayResults(ipcRenderer.sendSync("search-person",userInput));
document.getElementById('searchbox').value = "";
}
每当我运行这个应用程序时,我都会收到以下错误:
- (节点:6084)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:2):错误:RxError: RxDatabase.create():未添加适配器。 (我确定我已经成功安装了 pouched-adapter-idb 模块)
- 类型错误,无法读取未定义的属性“persons”。 (当我在 index.html 中搜索并按回车键时会弹出此错误)
我是编程新手,尤其是 js,我被这些错误困扰了一个星期,就是无法让它工作。有什么帮助吗?谢谢。
【问题讨论】:
标签: javascript node.js electron