Как прочитать файл .txt с Electron JS? - PullRequest
1 голос
/ 13 апреля 2020

В настоящее время у меня проблемы при попытке прочитать файл .txt с помощью Electron JS.

Я начал тестирование, используя электронный-быстрый старт репозиторий (работает Electron v8.2.1), не знаю, что-то с ним.

Но давайте углубимся в это.

мой индекс. html:

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
  <title>Hello World!</title>
</head>

<body>
  <input type="button" id="btn-readfile" value="Select a file">

  <script>
    const fs = require('fs')
    const {
      dialog
    } = require('electron').remote

    document.getElementById('btn-readfile').addEventListener('click', () => {
      dialog.showOpenDialog((fileNames) => {
        if (fileNames === undefined) {
          console.log("No files were selected")
          return
        }

        fs.readFile(fileNames[0], 'utf-8', (err, data) => {
          if (err) {
            return
          }

          console.log("The content is: ")
          console.log(data)
        })
      })
    }, false)
  </script>
</body>

</html>

Я могу нажать кнопку и выбрать файл из windows, но ничего не происходит на моя консоль ... последовал этот учебник, и он работает. Что я делаю неправильно?

1 Ответ

1 голос
/ 13 апреля 2020

Вы должны писать свой скрипт в файле renderer.js, который указан в нижней части тела как <script src="./renderer.js"></script>. Я сделал некоторые изменения в вашем коде, чтобы он работал:

  1. Убедитесь, что это nodeIntegration: true в вашем webPreferences в main.js
  2. вашем renderer.js файле будет содержать:
const fs = require('fs')
const {dialog} = require('electron').remote

document.getElementById('btn-readfile').addEventListener('click', () => {
     dialog.showOpenDialog({
          properties: ['openFile']
       }).then((data) => {
            console.log(data)
               if(data){
                    fs.readFile( data.filePaths[0], 'utf-8', (err, data) => {
                         if (err)
                              return
                         console.log("The content is: ")
                         console.log(data)
                    })
               }
       });
}, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...