Tôi đang cố gắng bao quanh đầu luồng Node.js, không phải là tôi mới sử dụng JavaScript và nút, ngôn ngữ cuối cùng tôi thực sự là Perl và PHP: DCác đối tượng JavaScript đường ống/truyền trực tuyến trong Node.js
Tôi đã đọc tài liệu về Bộ đệm/luồng @ nodejs.org, đã xem James Halliday @LXJS, đọc sách hướng dẫn phát trực tuyến và Thorsten Lorenz event-stream post. Tôi bắt đầu hiểu những điều cơ bản :)
Tôi xử lý dữ liệu được tuần tự hóa trong RDF (không phải là JSON và XML). Tôi quản lý để lấy dữ liệu (trong mã thực thông qua yêu cầu) và phân tích nó thành một đối tượng JS sử dụng mô-đun rdfstore
.
Cho đến nay tôi làm điều này:
s.createReadStream('myRDFdata.ttl').pipe(serialize()).pipe(process.stdout);
đâu serialize()
hiện công việc của phân tích một serializing mã cùng một lúc ngay bây giờ. Tôi sử dụng mô-đun through
để giao diện với luồng.
Bây giờ tôi có một số phương pháp tiếp (không khai báo hàm thực nhưng tôi hy vọng bạn sẽ có được điểm):
getRecipe(parsedRDF)
-> lấy RDF phân tích cú pháp (như là một đối tượng JavaScript) và nói với tôi làm thế nào để sử dụng nócreateMeal(parsedRDF, recipe)
-> lấy RDF phân tích cú pháp và các công thức từ trên cao và tạo ra một đối tượng RDF mới ra khỏi nó- đối tượng mới này cần phải được đăng và gửi đến trình duyệt
- (trong thế giới thực
getRecipe
wil l phải tương tác với người dùng trong trình duyệt)
Tôi thích ý tưởng kết hợp này với nhau thông qua các đường ống để có độ linh hoạt cao hơn khi tôi cải thiện mã sau này. Nhưng tôi không muốn serialize nó vào một serialization RDF mỗi lần nhưng chỉ gửi xung quanh đối tượng JS. Từ những gì tôi đã đọc trong tài liệu hướng dẫn, tôi có thể sử dụng mô-đun stringify
để lấy chuỗi ra khỏi mỗi bước để chuyển nó sang bước tiếp theo. Nhưng:
- điều này thực sự có ý nghĩa không? Trong điều khoản của tôi thêm chi phí không cần thiết hoặc là điều này không đáng kể?
- Tôi không thấy làm thế nào tôi có thể cung cấp cho các phân tích cú phápRDF cho cả hai phương pháp với sự phụ thuộc rằng
getRecipe
sẽ phải được gọi là đầu tiên và đầu ra là đầu vào chocreateMeal
là tốt. Có mô-đun nào giúp tôi về điều đó không? - Có thể là tôi phải yêu cầu người dùng lựa chọn công thức cuối cùng để tôi có thể cần gửi nội dung đến trình duyệt ở đó để nhận câu trả lời cuối cùng. Tôi có thể làm một cái gì đó như thế này trên ổ cắm trong khi đường ống là "chờ đợi"?
Tôi hy vọng điều này cho thấy những gì tôi đang cố gắng làm, nếu không tôi sẽ cố gắng cung cấp thêm chi tiết/cách diễn đạt.
Cập nhật: Sau khi ngủ qua nó tôi đã tìm ra một số điều nữa:
- Nó có thể không có ý nghĩa để serialize một định dạng như RDF vào một cái gì đó phi tiêu chuẩn nếu có định dạng serialization chính thức.Vì vậy, thay vì sử dụng
stringify
Tôi sẽ chỉ cần chuyển tiếp một chuỗi RDF chính thức giữa các bước - Điều này có nghĩa là tôi phân tích cú pháp/tuần tự hóa các đối tượng trong mỗi bước và điều này chắc chắn làm tăng thêm chi phí. Câu hỏi là tôi quan tâm? Tôi có thể mở rộng các mô-đun RDF tôi sử dụng để phân tích từ suối và serialize vào một
- tôi có thể giải quyết vấn đề với sự phụ thuộc giữa
getRecipe
vàcreateMeal
bằng cách thêm một số thông tin từgetRecipe
đểparseRDF
, điều này có thể được thực hiện rất dễ dàng với RDF không phá vỡ mô hình dữ liệu gốc. Nhưng tôi vẫn sẽ quan tâm để biết nếu tôi có thể xử lý phụ thuộc như thế này với ống
Cảm ơn câu trả lời, tôi thực sự sẽ thêm hỗ trợ ống vào thư viện RDF và làm cho nó có sẵn dưới dạng một mô-đun! –