如何在NuxtJS中下载文本文件?

时间:2019-03-27 09:21:59

标签: mysql express nuxt.js

在我的数据库中,我已经存储了文本文件的信息。在单击按钮时,我调用方法downloadLog()

downloadLog() {
      Axios.post('http://localhost:3000/api/get_systemlog_file', this.systemlog)
        .then(result => {
          this.downloadLink = result.data.url
        })
        .catch(error => {
          // API URL not found
        })
    }

在快递中,我搜索该行并收集数据并创建一个文件

app.post('/get_systemlog_file', (req,res) => {
  let fileInfo = req.body
  let expectedKeys = ['name', 'status', 'description']
  for (let idx = 0; idx < expectedKeys.length; idx++) {
    const key = expectedKeys[idx];
    if (!fileInfo.hasOwnProperty(key)) {
      return res.json(statusCodes.bad_request)
    }
  }

  let foulderPath = './assets/logs/'
  let filePath = foulderPath + fileInfo.status + '_' + fileInfo.name + '.txt'

  fs.writeFile(filePath, fileInfo.description, (err) => {
    if (err) {
      return res.json(statusCodes.bad_request)
    } else {
      let webpackedPath = '~' + filePath.slice(1)
      console.log(webpackedPath)
      return res.json({ url: webpackedPath })
    }
  })
})

响应的网址将是 “〜/ assets / logs / error_Status_26_03_19.txt”

this.downloadLink已包含我的文件的url,并在按钮中使用:href="downloadLink"调用了此变量。 点击后,它会在同一站点上打开我的应用程序的新标签,这可能是因为this.downloadLink最初设置为''

现在呢?我无权访问downloadLog()

中的窗口和文档

我希望打开下载窗口(确定要下载此文件),或者只是打开一个新标签页并下载它。没关系,我只想要那个文件:)

0 个答案:

没有答案