在Express Route中多次运行相同的HTTP请求

时间:2016-08-12 17:25:14

标签: node.js express

我正在使用node和express创建一个简单的应用程序,它接受一个计划的CSV文件,将其转换为JSON,并在浏览器中显示它。

但是,我遇到了能够在单个服务器实例中多次下载CSV文件的问题。

预期的行为是浏览器命中路由,服务器运行从远程服务器检索CSV文件的功能。这在服务器第一次启动后运行正常,但无法再次检索CSV。

有问题的路线:

router.get('/', function(req,res,next) {
  getCsv.fromURL('exampleUrlHere/thing.csv', 'data/schedule.json');

  res.render('index');
});

这是我给它打电话的帮手:

var fs = require('fs');
var request = require('request');
var Converter = require("csvtojson").Converter;
var csvToJson = new Converter({});


module.exports = {
    fromURL: function(csvFile, destination) {
        request.get(csvFile).pipe(csvToJson);
        csvToJson.on("end_parsed", function (jsonObj) {
           console.log(jsonObj); 
           fs.writeFile(destination, JSON.stringify(jsonObj),'utf8');

           console.log('JSON written from ' + csvFile + ' to ' + destination);
        });

    },
    asJSON: function() {
        var obj = JSON.parse(fs.readFileSync('data/schedule.json', 'utf8'));
        return obj;
    }
};

有人可能会对第一次运行后请求失败的原因有所了解吗?

0 个答案:

没有答案