Buildings a D3 dashboard using awsconsole statistical data. The data is in MongoDB and appears to load properly when routing to the browser.
However when trying to load the data via the D3 dashboard the following error is generated in console
Uncaught TypeError: **string.slice is not a function**
at **d3_time_parseFullYear (d3.js:2716)**
at d3_time_parse (d3.js:2519)
at Function.format.parse (d3.js:2495)
Tried various formats with no success, dashboard loads, but no data is present due to slice error
Sample queue.js snippet
queue()
.defer(d3.json, "/donorschoose/projects")
.defer(d3.json, "static/geojson/us-states.json")
.await(makeGraphs);
function makeGraphs(error, projectsJson, statesJson) {
//Clean projectsJson data
var donorschooseProjects = projectsJson;
// var dateFormat = d3.time.format("%Y-%m-%d");
var dateFormat = d3.time.format("%Y-%m-%d %H:%M:%S");
// var dateFormat = d3.time.format("%Y-%m-%d %X");
donorschooseProjects.forEach(function(d) {
d["date_posted"] = dateFormat.parse(d["date_posted"]);
d["date_posted"].setDate(1);
d["total_donations"] = +d["total_donations"];
});
Sample Mongo Data (with time stamp)
{
"_id" : ObjectId("5c8933d131a8834ae488c4d6"),
"date_posted" : ISODate("2003-06-18T00:00:00Z"),
"date_completed" : ISODate("2004-01-23T00:00:00Z"),
"date_thank_you_packet_mailed" : ISODate("2004-02-26T00:00:00Z"),
"date_expiration" : ISODate("2004-06-16T00:00:00Z")
}
Sample D3.js snippet
}
function d3_time_parseWeekNumberMonday(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i));
return n ? (date.W = +n[0], i + n[0].length) : -1;
}
function d3_time_parseFullYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 4));
return n ? (date.y = +n[0], i + n[0].length) : -1;
}
function d3_time_parseYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.slice(i, i + 2));
return n ? (date.y = d3_time_expandYear(+n[0]), i + n[0].length) : -1;
}
function d3_time_parseZone(date, string, i) {
return /^[+-]\d{4}$/.test(string = string.slice(i, i + 5)) ? (date.Z = -string,
i + 5) : -1;
}
function d3_time_expandYear(d) {
return d + (d > 68 ? 1900 : 2e3);
}