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