所以我将此代码作为基础,我必须使用它将“world_data.csv”的内容转换为JSON。
我对如何在变量中保存JSON没有任何线索。我想我想要的数据暂时存储在“jsonArray”中,但是如何定义一个全局变量来无限地存储该数据呢?
var express = require('express');
var app = express();
var sys = require('util');
var path = require('path');
var bodyParser = require('body-parser');
var Converter = require("csvtojson").Converter;
app.use( bodyParser.json() );
app.use( express.static( path.join(__dirname, "public") ) );
var converter = new Converter({});
converter.on("end_parsed", function (jsonArray) {
console.log(jsonArray);
});
require("fs").createReadStream("world_data.csv").pipe(converter);
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
答案 0 :(得分:0)
您只需要一个全局变量。请阅读Javascript Closures
var express = require('express');
var app = express();
var sys = require('util');
var path = require('path');
var bodyParser = require('body-parser');
var Converter = require("csvtojson").Converter;
var jsonContent = {}; // <-- Your Global JSON Data
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, "public")));
var converter = new Converter({});
converter.on("end_parsed", function(jsonArray) {
if (jsonArray) {
jsonContent = jsonArray
}
});
require("fs").createReadStream("world_data.csv").pipe(converter);
var server = app.listen(3000, function() {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
答案 1 :(得分:0)
取决于您想要的解析结果,例如将其传递给视图:
app.get('/', function(req, res) {
require("fs").createReadStream("./world_data.csv").pipe(converter);
converter.on("end_parsed", function (json) {
res.json(json)
});
});
当 csvtojson 提供api和hook时,您可以在解析过程完成时调用所需的任何内容。
或者您可以使用可以实现的oneliner:
app.get('/', function(req, res) {
require("fs").createReadStream("./world_data.csv").pipe(new Converter({constructResult:false})).pipe(res)
})