質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

NeDB

NeDBは、JavaScriptで作られたデータベース。Node.js/NW.js/Electron/ブラウザなどで動作します。アプリケーションに組み込むことができるため、別途でデータベースプロセスを起動することは不要です。MongoDBと互換性があり高速です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

解決済

Electronのプロセス間通信でデータが正しく転送されない

ichl_01
ichl_01

総合スコア11

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

NeDB

NeDBは、JavaScriptで作られたデータベース。Node.js/NW.js/Electron/ブラウザなどで動作します。アプリケーションに組み込むことができるため、別途でデータベースプロセスを起動することは不要です。MongoDBと互換性があり高速です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

1回答

0評価

1クリップ

596閲覧

投稿2022/03/25 11:08

現状

ElectronのメインプロセスにおいてwebContents.sendでオブジェクトを送信するとレンダラープロセスに[Object]という展開可能なプロパティのようなものが表示される。

ゴール

出てくるオブジェクトを想定しているメッセージ(送った文字列のみ)にしたい

コード

上から順に メインプロセス、レンダラープロセス、データベース内容、表示されるオブジェクト

Javascript

//メインプロセス function get() { db.find({}, (error, docs) => { console.log(docs[0].notes); return docs[0].notes; }); }; const createWindow = () => { // Create the browser window. const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, contextIsolation: false, }, }); mainWindow.webContents.once('did-finish-load', () => { mainWindow.webContents.send('message', get() ); }); // and load the index.html of the app. mainWindow.loadFile(path.join(__dirname, 'index.html')); // Open the DevTools. mainWindow.webContents.openDevTools(); mainWindow.setMenu(null); };

Javascript

//レンダラープロセス ipcRenderer.on('message', (message) => { console.log(message); }

db

{"notes":"a","date":{"$$date":1648183077589},"_id":"Cq7THhdzCMz4rmui"}

Javascript

//表示されるもの { "sender": { "_events": {}, "_eventsCount": 1 }, "senderId": 0, "ports": [] } //更に展開可能

ご回答よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

ichl_01

2022/03/25 23:11

レンダラープロセスについて ()で閉じていない場所がありましたが動作とは関係ありません。
sato_shoma

2022/03/25 23:38

db.findファンクション内のconsole.logでは普通に出力されましたか?
ichl_01

2022/03/25 23:54

NeDBデータベースの定義部分が抜けていたので追記します。 ```Javascript var db = new Datastore({ filename: app.getPath('userData') + '/notes.db', autoload: true }); const doc = { "notes": 'a', date: new Date } ```

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Electron

Electronは、HTML5とNode.jsというWebの技術を用いてデスクトップアプリケーションを作成できるクロスプラットフォームな実行環境です。

NeDB

NeDBは、JavaScriptで作られたデータベース。Node.js/NW.js/Electron/ブラウザなどで動作します。アプリケーションに組み込むことができるため、別途でデータベースプロセスを起動することは不要です。MongoDBと互換性があり高速です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。