Как скачать текстовый файл в NuxtJS? - PullRequest
0 голосов
/ 27 марта 2019

В моей базе данных я сохранил информацию для текстового файла.При нажатии на кнопку я вызываю метод 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 })
    }
  })
})

ответный URL будет"~ / assets / logs / error_Status_26_03_19.txt"

this.downloadLink уже содержит URL-адрес моего файла, и эта переменная вызывается в кнопке с :href="downloadLink".При нажатии открывается новая вкладка моего приложения на том же сайте, это может быть из-за того, что this.downloadLink изначально имеет значение ''.

Что теперь?У меня нет доступа к окну и документу в моем downloadLog()

Я ожидаю, чтобы открыть окно загрузки (вы обязательно загрузите этот файл) или просто открыть новую вкладку и загрузить его.Неважно, я просто хочу этот файл:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...