- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我尝试在 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 和队列来预加载此 RESTful 数据?
1 Câu trả lời
d3 库是一个客户端库。这意味着它必须在浏览器中使用,而不是在服务器端应用程序中使用。
如果您想获取数据并在 Express 应用程序中连接它们,您可以使用异步Và请求,如下所述:
var request = require('request');
var async = require('async');
function createRequestTask(url) {
return function(callback) {
request({
url: url,
json: true
}, function (err, response, body) {
callback(err, body);
});
};
}
async.parallel([
// URL #1
createRequestTask('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'),
// URL #2
createRequestTask('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'),
(...)
],
function(err, results) {
// Result contains an array with each request result
});
请求将并行执行,当所有请求完成时,调用最终回调。 results
变量将包含一个包含所有响应内容的数组。
然后,您可以利用此数组来构建您希望 Express 路由返回的对象。
这是您的代码的更新:
router.get('/', handler1);
function handler1(req, res) {
async.parallel([
// URL #1
createRequestTask('https://data.medicare.gov/...'),
// URL #2
createRequestTask('https://data.medicare.gov/...'),
(...)
],
function(err, results) {
res.render('index', { title: 'Group Practices', results });
});
}
module.exports = router;
希望对你有帮助蒂埃里
关于node.js - d3.js、queue.js 和 node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815684/
Tôi đang cố gắng tìm hiểu xem mô-đun sau đây có chức năng gì. nhập Queue nhập đa xử lý nhập luồng lớp BufferedReadQueue(Queue.
Nếu tôi sử dụng Queue.Queue thì hàm read() của tôi không hoạt động, tại sao? Tuy nhiên, nếu tôi sử dụng multiprocessing.Queue, nó chạy tốt: từ multiprocessing
Tôi đang tìm kiếm thêm thông tin chi tiết về cách triển khai hàng đợi của Python hơn những gì tôi tìm thấy trong tài liệu. Theo những gì tôi hiểu, và xin hãy bỏ qua sự thiếu hiểu biết của tôi nếu tôi sai về vấn đề này: queue.Queue(): được triển khai thông qua một mảng nguyên thủy trong bộ nhớ, do đó không thể chia sẻ giữa nhiều quy trình.
Khi tôi sử dụng hàng đợi từ mô-đun đa xử lý (Python 2.7 trên Windows) thay vì Queue.Queue, chương trình của tôi không tắt hoàn toàn. Cuối cùng, tôi muốn sử dụng multiprocessing.Process
Đọc nhiều hướng dẫn về vòng lặp sự kiện JavaScript, tôi thấy nhiều thuật ngữ khác nhau để xác định hàng đợi lưu trữ tin nhắn và khi ngăn xếp cuộc gọi trống, vòng lặp sự kiện đã sẵn sàng để nhận tin nhắn: Hàng đợi Tin nhắn Hàng đợi Sự kiện Tôi không thể tìm thấy thuật ngữ chính thống nào để xác định nó. Ngay cả MDN
Tôi nhận được thông báo lỗi "Kiểu hàng đợi không chấp nhận đối số". Khi tôi thay thế dòng thay đổi hàng đợi bằng PriorityQueue, lỗi này biến mất và biên dịch bình thường. Sự khác biệt là gì và làm thế nào tôi có thể thay đổi nó thành hàng đợi biên dịch và hàng đợi thông thường? nhập java.util
Làm thế nào để trả một mục về hàng đợi? Hàng đợi? Điều này hữu ích trong việc xử lý luồng hoặc đa luồng để tác vụ không bị mất nếu xảy ra lỗi. Tài liệu hướng dẫn cho queue.Queue.get() cho biết hàm này có thể "xóa và trả về một mục từ hàng đợi", nhưng
Làm thế nào để thực hiện "select" trên nhiều queue.Queue
http://docs.python.org/2/library/queue.html#Queue.Queue.put Câu hỏi này có vẻ ngây thơ, nhưng tôi không tìm thấy câu trả lời trong tài liệu cũng như trong các tìm kiếm trên Google, vậy các phương pháp này có phải là luồng không?
Đây có thể là một câu hỏi ngớ ngẩn nhưng tôi bối rối về .queue() được sử dụng với .dequeue() và $.queue()> hoặc jquery.queue(). Chúng có giống nhau không, nếu giống nhau thì tại sao lại là jquery?
Tôi đang cố gắng tạo một lớp xử lý luồng TCP có luồng để giao tiếp với luồng chính, nhưng Queue.Queue cũng không thực hiện được những gì tôi cần, máy chủ nhận dữ liệu từ một chương trình khác và tôi chỉ muốn truyền nó vào luồng chính để xử lý. Sau đây là mã tôi có cho đến nay:
Thách thức chính của các ứng dụng đa luồng là phối hợp các luồng chia sẻ dữ liệu hoặc các luồng khác
Trong lớp hàng đợi của mô-đun Queue, có một số phương thức, cụ thể là qsize, empty và full, có tài liệu ghi rằng chúng "không đáng tin cậy". Họ có điểm gì không đáng tin cậy vậy? Tôi đã nhận thấy trên tài liệu Python rằng
Tôi cần một hàng đợi mà nhiều luồng có thể đưa dữ liệu vào và nhiều luồng có thể đọc dữ liệu từ đó. Python có ít nhất hai lớp hàng đợi, Queue.Queue và collections.deque, và lớp trước có vẻ sử dụng lớp sau ở bên trong. Cả hai
Ngày mai tôi sẽ trình bày lý do cho lựa chọn triển khai hàng đợi tin nhắn đang xử lý của mình, nhưng hiện tại tôi vẫn chưa thể diễn đạt lý do của mình. Người đồng thiết kế của tôi đề xuất rằng chúng tôi triển khai một hàng đợi bất đồng bộ đơn giản chỉ bằng cách sử dụng danh sách công việc cơ bản và một mutex để kiểm soát quyền truy cập, và tôi đề xuất sử dụng ActiveMQ ở chế độ nhúng.
Trong Scala, một đặc điểm được định nghĩa: trait Queue[T] Queue có phải là một kiểu không? Hay thứ gì khác, như một hàm tạo kiểu? Từ http://artima.com/pins1ed/type-para
Tôi thấy SML/NJ có cấu trúc hàng đợi. Tôi không biết cách sử dụng nó. Làm thế nào để sử dụng các thư viện bổ sung do SML/NJ cung cấp? Câu trả lời tốt nhất là cấu trúc hàng đợi không được chỉ định trong SML '97, nhưng nó tồn tại trong vòng lặp cấp cao nhất của SML/NJ.
Tôi mới làm quen với D3 và JavaScript. Tôi đang cố gắng hiểu queue.js trong đó. Tôi đã thực hiện sự kết hợp này. Nhưng vẫn không thể hiểu rõ queue.await() và queue.awaitAll(
Vì vậy, tôi đang cố gắng gọi một hàm trong tệp main.cpp của mình nhưng tôi nhận được "lỗi: không có hàm nào khớp để gọi đến 'Queue::Queue()." queue.h #ifndef QUEUE_H #define QUEUE_H
Giả sử tôi có một mảng numpy 2D với 10 hàng như mảng([[ 23425. , 521331.40625], [ 23465. , 521246.03125],
Tôi là một lập trình viên xuất sắc, rất giỏi!