2011-07-07 34 views
8

Do tệp phải được tạo động, có lẽ tôi nên sử dụng writeStream của mô-đun fs. Nhưng tôi không thể tìm thấy bất kỳ mã ví dụ nào với googling nghèo của tôi. Lấy làm tiếc.Cách triển khai tải xuống tệp với mô đun fs của Node.js và hiển thị

Cụ thể hơn, tôi muốn cung cấp tệp CSV hoặc tệp PDF với dữ liệu của tôi trong MongoDB, khi ai đó yêu cầu.

Bất kỳ ai, vui lòng cho tôi một số gợi ý.

Cảm ơn.

Trả lời

16

Với express, tôi có thể thực hiện như thế này.

app.get('/down2', function(req, res){ 
    var filename = 'data.csv'; 
    res.attachment(filename); 
    res.end('hello,world\nkeesun,hi', 'UTF-8'); //Actually, the data will be loaded form db. 
}); 

Đơn giản như thế nào. Cảm ơn.

+0

Tôi không nghĩ rằng đó là một ý tưởng tốt để lưu file vào đĩa và sau đó gửi nó sử dụng 'res.attachment' nếu bạn nhận được dữ liệu cho bạn csv từ liên kết db và nó không tồn tại trên đĩa ở nơi đầu tiên. Bạn đã có dữ liệu, tại sao không chỉ đặt tiêu đề và sau đó 'res.send (generatedCSVcontent)'? –

+0

Tôi không lưu dữ liệu vào một số tệp. Tôi chỉ gửi dữ liệu như bạn đã nói. Tên tệp trên chỉ là tên tệp được sử dụng để yêu cầu tiêu đề. Trên thực tế, res.attachment() rất giống với câu trả lời đầu tiên. Nó chỉ thiết lập tiêu đề với tên tệp và kiểu Nội dung. – Whiteship

+0

vâng, sai lầm –

2

bạn không cần fs, chỉ cần dòng dữ liệu của bạn từ db trong yêu cầu xử lý

bạn có thể đặt tập tin siêu dữ liệu sử dụng Content-Disposition tiêu đề

Content-Type: image/jpeg 
Content-Disposition: attachment; filename=genome.jpeg; 
    modification-date="Wed, 12 Feb 1997 16:29:51 -0500"; 
Content-Description: a complete map of the human genome 
+0

Cảm ơn rất nhiều. Tôi sẽ thử theo cách này. – Whiteship

Các vấn đề liên quan