2017-01-24 6 views
0

Я разрабатываю веб-приложение, где пользователь нажимает кнопку, а вызов JQuery AJAX переходит на NodeJS-сервер, который, в свою очередь, извлекает записи из Elastic Search. Я хочу, чтобы эти записи записывались в CSV-файл и отправляли этот файл в AJAX в качестве ответа, доступного для загрузки в браузере. Как я могу это достичь?Отправить файл от NodeJS в ответ на JQuery AJAX

ответ

0
var fs = require('fs');  
var stream = fs.createReadStream(pathToFile); 
stream.on('error', function(){ 
    console.log('404 -------- ', pathToFile); 
}); 
stream.pipe(res); 


var destroy = require('destroy'); // nam i destroy --save 
var onFinished = require('on-finished'); // nam i on-finished --save 
onFinished(res, function (err) { 
    destroy(stream) 
}) 
0
$(document).ready(function() { 
$(".export").on('click',function(){ 
    var project_id="<?php echo $_GET['project_id'];?>"; 
    $.ajax({ 
     type:"GET", 
     url: 'https://work.readycontacts.com/True_Validate/download_file.php', 
     data: "project_id=" + project_id, 
      success:function(data){ 
       console.log(data); 
      } 
    }); 
return false; 
}); 

});

экспорта является функция, боб клик и вы можете заменить download_file.php с nodejs загрузить файл кода

+0

затем загрузить файл с помощью nodejs передать этот http://stackoverflow.com/questions/17558126/ask -ser-where-to-save-file-with-node-js и этот http://stackoverflow.com/questions/16847416/download-dialog-not-displaying –