Я пытаюсь написать простую программу, которая хранит список преступлений в базе данных mongodb, однако я пробовал много решений за последние несколько часов, и кажется, что Node.js видит только одни данные, и они не определены! Да, файл interventionscitoyendo.csv не является пустым и находится прямо рядом с файлом javascript. Есть идеи?
var fs = require('fs');
var file = fs.createWriteStream('interventionscitoyendo.csv');
var http = require('http');
var iclite = require("iconv-lite");
var csv = require('csv');
var object = csv();
var db = null;
var request = http.get("http://donnees.ville.montreal.qc.ca/dataset/5829b5b0-ea6f-476f-be94-bc2b8797769a/resource/c6f482bf-bf0f-4960-8b2f-9982c211addd/download/interventionscitoyendo.csv", function(response) {
response.pipe(file);
});
//Create Data-Base
var mongo = require("mongodb").MongoClient;
var url = "mongodb://localhost:27017/";
mongo.connect(url,{ useNewUrlParser: true }, function(err, database) {
if (err){ console.log(err);}
db = database;
var dbo = db.db("Crimes");
var ListeCrimes = [];
object.from.path('interventionscitoyendo.csv').to.array(function (data) {
for (var index = 0; index < data.length; index++) {
var crime = {
CATEGORIE: iclite.decode(data[index][0], "ISO-8859-1"),
DATE: data[index][1],
QUART: data[index][2],
PDQ: data[index][3],
X: data[index][4],
Y: data[index][5],
LATITUDE: data[index][6],
LONGITUDE: data[index][7]
};
console.log(crime);
ListeCrimes.push(crime);
}
console.log(data.length);
dbo.collection("Crimes").insertMany(ListeCrimes, function(err, res) {
if (err){ console.log(err);}
else { console.log("A1 works"); }
});
if (data.status == 200){
db.close();
}
});
});
И вывод:
{ CATEGORIE: '',
DATE: undefined,
QUART: undefined,
PDQ: undefined,
X: undefined,
Y: undefined,
LATITUDE: undefined,
LONGITUDE: undefined }
1
A1 works