Здравствуйте, товарищи! Помогите пожалуйста разобраться.
Пользовательские запросы из Vue.js приложения обрабатываются в Node.js HTTP веб-сервером. Вообщем стоит задача скачать файл из удаленного sftp сервера через веб-интерфейс. Вот, что я сделал.
При клике определенной кнопки запускается функция
getFile в которую я передаю название файла. В функции
getFile делаю post запрос на определенной url адрес. Этот url адрес обрабатывает контроллер в Node.js. На стороне Node.js подключение и скачивание файла происходит с помощью библиотеки
ssh2-sftp-client.
На данный момент ошибка на стороне Vue.js. Запрос не доходит до Node.js, как мне кажется. Где, что упустил. Подскажите пожалуйста.
Error: Request failed with status code 404
at FtD3.t.exports (createError.js:16)
at t.exports (settle.js:18)
at XMLHttpRequest.f.(:3010/anonymous function) (http://localhost:3010/static/js/vendor.1dc24385e2ad03071ff8.js:1312:88758)
Код из Vue.js компонента следующий:
getFile (fileName) {
axios.post('http://localhost:3010/csv', {file_name: fileName}, {headers: {'Authorization': this.token}}).then(response => {
console.log(response)
this.showAlert('Файл скачен.', 'is-success', 'is-top')
}).catch((error) => {
console.log(error)
this.showAlert(error, 'is-danger', 'is-bottom')
})
}
controller:const request = require('request')
const queryString = require('query-string')
let Client = require('ssh2-sftp-client')
let sftp = new Client()
const config = require('../config')
exports.getFile = (req, res) => {
console.log(req) // В консоль ничего не выводится
let data = {
file_name: req.query.file_name
}
let options = {
method: 'port',
json: true,
header: {'Authorization': req.header.token},
url: `http://localhost:3010/csv?` + queryString.stringify(data)
}
request(options, (error, response) => {
console.log('Выполняется блок') // <- В консоль ничего не выводится.
if (response) {
sftp.connect(config.sftpServer).then(() => {
return sftp.get('/reports/' + data.file_name)
}).then((chunk) => {
console.log(chunk)
}).catch((err) => {
console.log(err)
})
} else {
response.status(500).send(error)
}
})
}