#node.js #mongoose #d3.js
#node.js #мангуст #d3.js
Вопрос:
Я получаю данные из api и хотел бы передать их в другой файл с помощью d3.js чтобы создать диаграмму. Вот код, в котором я получаю данные:
//app.js file app.get("/getAlbumData",(req,res)=gt; { Wasabi.find( { publicationDate: { $gte : 2006, $lte : 2016}}, function (err, doc) { console.log(doc) res.send(doc); res.end(); }).limit(25).forEach(function(data) { for(var i in data) { if(data[i]==null || data[i]=='') { delete data[i] } } result.push(data) return result }) })
Я бы передал переменную «результат» в следующий файл, чтобы использовать ее в функции d3.json:
//barchart.js d3.json(result, function (data) { let filteredData=[]; console.log("data", data[0]) data.forEach((d,i)=gt;{ if(d.country != undefined ) { if (d.country.localeCompare(country) == 0) { filteredData.push(d) }
Я попытался использовать «требуется», но оно выдает исключение о том, что оно не определено. Спасибо вам за вашу помощь
Ответ №1:
вы можете измениться app.js следующим образом.
const fetchData = async (req,res)=gt; { var resp = await Wasabi.find( { publicationDate: { $gte : 2006, $lte : 2016}}).limit(25); result = []; resp.forEach(function(data) { for(var i in data) { if(data[i]==null || data[i]=='') { delete data[i] } } result.push(data) }) return result; }; exports.fetchData = fetchData;
в barchart.js файл
const { fetchData } = require('./app.js'); const result = fetchData(); // here you can access the result data