electron的axios用法

发布时间 2023-11-13 19:10:43作者: linux星

当在 Electron 中使用 axios 库时,你需要在渲染进程的代码中使用它来发起 HTTP 请求。以下是一个完整的示例,展示了如何在 Electron 中导入并使用 axios 库:

 

index.html:

 

```html

<!DOCTYPE html>

<html>

<head>

  <title>Electron Axios Example</title>

</head>

<body>

  <h1>Electron Axios Example</h1>

  <button id="getRequest">Send GET Request</button>

  <button id="postRequest">Send POST Request</button>

  <script>

    const { ipcRenderer } = require('electron');

    document.getElementById('getRequest').addEventListener('click', () => {

      ipcRenderer.send('get-request');

    });

 

    document.getElementById('postRequest').addEventListener('click', () => {

      ipcRenderer.send('post-request');

    });

 

    ipcRenderer.on('get-response', (event, data) => {

      console.log('GET Response:', data);

    });

 

    ipcRenderer.on('post-response', (event, data) => {

      console.log('POST Response:', data);

    });

  </script>

</body>

</html>

```

 

main.js:

 

```javascript

const { app, BrowserWindow, ipcMain } = require('electron');

const axios = require('axios');

 

let mainWindow;

 

app.on('ready', () => {

  mainWindow = new BrowserWindow({

    width: 800,

    height: 600,

    webPreferences: {

      nodeIntegration: true

    }

  });

 

  mainWindow.loadFile('index.html');

});

 

ipcMain.on('get-request', async (event) => {

  try {

    const response = await axios.get('https://jsonplaceholder.typicode.com/posts');

    event.reply('get-response', response.data);

  } catch (error) {

    console.error('Error fetching data', error);

  }

});

 

ipcMain.on('post-request', async (event) => {

  try {

    const response = await axios.post('https://jsonplaceholder.typicode.com/posts', {

      title: 'foo',

      body: 'bar',

      userId: 1

    });

    event.reply('post-response', response.data);

  } catch (error) {

    console.error('Error posting data', error);

  }

});

```

 

在这个示例中,我们创建了一个简单的 Electron 应用,其中包含了一个窗口和一个 HTML 文件。在 HTML 文件中,我们创建了两个按钮用于发起 GET 请求和 POST 请求,然后在渲染进程中使用 ipcRenderer 将请求发送到主进程。在主进程中,我们使用 axios 发起了相应的请求,并将获取到的数据通过 ipcMain 发回到渲染进程。当数据返回时,我们在渲染进程中监听相应的事件,并在控制台中打印返回的数据。

 

运行以上代码后,你将能够在 Electron 应用中通过点击按钮来发起 GET 请求和 POST 请求,并在控制台中看到返回的数据。这展示了在 Electron 中导入并使用 axios 库的完整示例。