Как загрузить файл пользователю после фронтального действия в Node.js - PullRequest
0 голосов
/ 09 декабря 2011

Я работаю над проектом, полностью построенным на node.js и coffeescript.Я хочу, чтобы пользователь мог экспортировать CSV из нескольких разных коллекций в мою базу данных Mongo, нажав кнопку на моем веб-сайте.
Я считаю, что лучший способ сделать это - сделать ajax-вызов в мой сервер node.js.и пусть этот вызов возвращает somefile.csv пользователю.Я в растерянности, как это сделать, и есть так много противоречивых ресурсов.Вот заглушка того, как я думаю, что вещи должны работать:

exports.exportToCSV = (req, res) ->
  console.log 'Inside exportToCSV'

  # Create a dynamic csv file
  # How to?
  # Set the response headers
  # How to? 
  # Attach the newly created CSV
  # How to?
  # Write the response
  res.write('somefile.csv')
  res.end()

Любая помощь будет принята с благодарностью.Спасибо.

1 Ответ

2 голосов
/ 09 декабря 2011

Если вы используете Express (и я бы сказал, что вам нужно довольно большое оправдание, чтобы этого не делать), все после создания CSV будет простым:

res.download 'somefile.csv'

Как Экспресс-документы объясняют , это сокращение от

res.attachment 'somefile.csv'

(которое устанавливает заголовки) и

res.sendfile 'somefile.csv'

Если вы хотите понять, как все это работает, вот источник: https://github.com/visionmedia/express/blob/master/lib/response.js

Что касается создания CSV, мне никогда не приходилось это делать, но вы не ошибетесь в поиске npm для "csv".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...