【发布时间】:2024-04-22 22:30:01
【问题描述】:
我正在尝试在 nodejs 中加载数据,然后将其传递给 expressjs 以在浏览器中呈现 d3 图表。
我知道我可以通过这种方式加载数据 - https://github.com/mbostock/queue
我有一个这样的 expressjs 路由配置 -
var d3 = require('d3')
,queue = require("queue-async")
;
router.get('/', handler1);
function handler1(req, res) {
queue()
.defer(d3.json, 'https://data.medicare.gov/resource/a8s4-5eya.json?$limit=50000&$$app_token=igGS35vW9GvDMmJUnmHju2MEH&$select=org_pac_id%20as%20source, org_pac_id%20as%20target,org_lgl_nm%20as%20description')
.defer(d3.json, 'https://data.medicare.gov/resource/a8s4-5eya.json?$limit=50000&$$app_token=igGS35vW9GvDMmJUnmHju2MEH&$select=org_pac_id%20as%20source, org_pac_id||pri_spec%20as%20target, pri_spec%20as%20description')
.defer(d3.json, 'https://data.medicare.gov/resource/a8s4-5eya.json?$limit=50000&$$app_token=igGS35vW9GvDMmJUnmHju2MEH&$select=org_pac_id||pri_spec%20as%20tsource, pri_spec%20as%20target, frst_nm%20as%20description')
.await(go);
function go(error, data,d2,d3){
data.concat(d2); data.concat(d3);
console.log(data);
res.render('index', { title: 'Group Practices', data });
}
}
module.exports = router;
但是我得到一个浏览器错误,
XMLHttpRequest is not defined
ReferenceError: XMLHttpRequest is not defined
at d3_xhr (/Users/Admin/Public/GroupPractice/node_modules/d3/d3.js:1934:114)
at d3.json (/Users/Admin/Public/GroupPractice/node_modules/d3/d3.js:9533:12)
at pop (/Users/Admin/Public/GroupPractice/node_modules/queue-async/queue.js:24:14)
at Object.q.defer (/Users/Admin/Public/GroupPractice/node_modules/queue-async/queue.js:55:11)
at handler1 (/Users/Admin/Public/GroupPractice/routes/index.js:18:5)
at Layer.handle [as handle_request] (/Users/Admin/Public/GroupPractice/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/Admin/Public/GroupPractice/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (/Users/Admin/Public/GroupPractice/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/Admin/Public/GroupPractice/node_modules/express/lib/router/layer.js:95:5)
at /Users/Admin/Public/GroupPractice/node_modules/express/lib/router/index.js:277:22
如何使用 d3 和 queue 来预加载这些 RESTful 数据?
【问题讨论】:
-
您正在尝试使用服务器端的节点加载外部 JSON 文件?您不必发出 AJAX 请求,您正在寻找这样的东西:*.com/a/20305118/16363
标签: node.js rest d3.js queue.js