我使用的是 Realm(JS) 版本 11.9.0 和 Electron 24.0.0。 我正在尝试在我的 Electron 应用程序中设置本地数据库,但由于未知原因而出错。 一旦我使用指定的配置打开 Realm 数据库,我就会看到返回一个空对象。
顺便说一句,数据库被创建是因为我看到它出现在我的目录中,但是一旦我添加项目并想要检索项目,在这两种情况下我都会得到一个空对象。 我在 Electron 日志环境或控制台中也没有看到任何错误消息。
因此很难准确指出问题出在哪里。 我可能错过了什么吗?
这是示例代码:
main.ts
import Realm from "realm";
const TaskSchema = {
name: "Task",
properties: {
_id: "int",
name: "string",
priority: "int?",
progressMinutes: "int?",
},
primaryKey: "_id",
};
const PersonSchema = {
name: "Person",
properties: {
name: "string",
age: "int?",
},
};
const DogSchema = {
name: "Dog",
properties: {
name: "string",
owner: "Person?",
age: "int?",
},
};
const CatSchema = {
name: "Cat",
properties: {
name: "string",
},
};
let realm:Realm;
ipcMain.handle('createConnection', async (event, message) => {
console.log('message',message)
const encryptionKey = new Int8Array(64);
try {
realm = await Realm.open(
{
schema: [TaskSchema,PersonSchema,DogSchema,CatSchema],
path: "test.realm",
encryptionKey,
}
);
}catch(err){
console.log("check issue:",err)
}
return {
status: "ok",
test: realm // returns Realm {}
}
})
ipcMain.handle('createCat', async (event, message) => {
try {
let cat: Realm.Object;
realm.write(() => {
cat = realm.create("Cat", { name: "Max" });
});
}catch(err){
console.log("Check issue:",err)
}
console.log('message',message)
return {
status: "ok"
}
})
ipcMain.handle('getCat', async (event, message) => {
let cats = realm.objects("Cat");
console.log("cats: ",cats) // returens {}
return {
status: "ok",
}
})
有人在 Realm-Nodejs 和 Electron 中有更多这方面的经验吗?
提前谢谢您。
Realm 对象是原生的,无法通过 javascript 显示,但您仍然可以访问它们的属性。