Tôi có luồng và tôi cần tải nội dung luồng thành chuỗi. Tôi stream từ internet bằng cách sử dụng http.get. Tôi cũng viết luồng vào tệp, nhưng tôi không muốn ghi tệp và sau đó mở cùng một tệp và đọc từ đó ... Vì vậy, tôi cần phải chuyển đổi luồng thành chuỗi Cảm ơn mọi lời khuyên ...Node.js - Cách nhận luồng vào chuỗi
Trả lời
Thay vì sử dụng các chức năng lồng nhau thứ hai, hãy thử các phương thức toString() trên dòng suối. Điều này sau đó có thể được piped bất cứ nơi nào bạn muốn nó đi, và bạn cũng có thể viết một phương thức() có thể gán nó cho một biến hoặc sử dụng nó trực tiếp trong một chức năng.
var http = require('http');
var string = '';
var request = http.get('http://www.google.cz', function (err, data){
if (err) console.log(err);
string = data.toString();
//any other code you may want
});
//anything else
Lưu ý cuối cùng - phương thức http.get() có hai tham số: url và gọi lại. Điều này đòi hỏi hai tham số, và bạn có thể đã không nhận được gì vì nó là một thông báo lỗi rỗng.
Tôi nghĩ rằng điều này chỉ hoạt động ở đây vì http.get trả về luồng mở rộng, nói chung luồng có thể đọc được không có một phương thức toString hoạt động theo cách này. –
Vì vậy,
I have this:
var centent = '';
var adress = "http://www.google.cz";
var request = http.get(adress.trim(), function(response) {
//I need to get content of http stream into variable content and after that continue
}
tôi đã suy nghĩ, rằng điều này sẽ làm việc, nhưng nó không
var http = require('http');
var string = '';
var request = http.get("http://www.google.cz", function(response) {
response.on('data', function(response){
string += response;
});
response.on('end', function(string){
console.log(string);
});
});
Thêm phần này vào đầu 'response.setEncoding ('utf8'); ' – user568109
Đây không phải là câu trả lời, nó sẽ được thêm vào câu hỏi của bạn. – justrhysism
Một điều chỉnh nhỏ cho trình xử lý 'kết thúc', hàm xử lý sẽ không có tham số nếu không nó sẽ chỉ in không xác định. Vì vậy, 'response.on ('end', function() { console.log (string); }); ' – mihaic
var http = require('http');
var string = '';
var request = http.get("http://www.google.cz", function(response) {
response.on('data', function(response){
string += response.toString();
});
response.on('end', function(string){
console.log(string);
});
});
Điều này hoạt động chắc chắn. Tôi đang sử dụng nó.
- 1. Cách tối ưu để nhận chuỗi hoặc char * vào luồng?
- 2. Đóng luồng luồng MJPEG qua proxy Node.js
- 3. node.js: Cách phát hiện luồng stdin trống?
- 4. Đa luồng trong Node.js?
- 5. Làm cách nào để 'tích lũy' luồng thô trong Node.js?
- 6. Viết chuỗi vào luồng đầu ra
- 7. Luồng dòng hướng trong Node.js
- 8. Node.js, đa luồng và Socket.io
- 9. Cách đọc toàn bộ luồng văn bản trong node.js?
- 10. Node.js http.createServer cách nhận lỗi
- 11. thay thế một đoạn chuỗi từ luồng đầu vào
- 12. Cách ghi luồng vào tệp?
- 13. Chuỗi luồng trong C
- 14. Nhận luồng từ XmlReader
- 15. Cách đọc luồng đầu vào http
- 16. cách xóa nội dung trong luồng Chuỗi.?
- 17. Đơn luồng và vòng lặp sự kiện trong Node.js
- 18. Nhận TextReader từ luồng?
- 19. Cách thực hiện ghi WebRTC vào máy chủ Node.js
- 20. Giải mã luồng đầu vào
- 21. Cách thêm indention vào toán tử luồng
- 22. node.js cách chèn chuỗi vào đầu tệp nhưng không thay thế văn bản gốc?
- 23. Nhận mật khẩu từ đầu vào bằng cách sử dụng node.js
- 24. Cách node.js hoạt động?
- 25. Làm cách nào để nhận dạng NODE_ENV trong Node.js?
- 26. Viết StringBuilder vào luồng
- 27. DotNetZip Lưu vào luồng
- 28. "Lỗi luồng chưa xử lý trong đường ống" từ Node.js
- 29. Đọc từ luồng bộ nhớ thành chuỗi
- 30. Chạy tác vụ trong nhiều chuỗi trên node.js
Bạn đang thắc mắc là quá mơ hồ. Vì vậy, bạn có muốn chuyển đổi dữ liệu đến một chuỗi, hoặc ghi nó vào đĩa? Một số mã ví dụ sẽ giúp ích. –
có thể trùng lặp của [Ghi dòng node.js vào một biến chuỗi] (http://stackoverflow.com/questions/10623798/writing-node-js-stream-into-a-string-variable) –