2017-01-18 2 views
0

, столкнувшись с проблемой доступа к файлу, который я отправляю в объект formData в узел. Код в coffeescript. Посылка:Невозможно выяснить, как читать данные, полученные из данных формы

formData = new FormData() 
     formData.append("upload", file) 
     $.ajax 
      url: "/onboard/groups/csv" 
      method: "POST" 
      dataType: "json" 
      cache: false 
      data: formData 
      contentType: false 
      processData: false 
      success: (data) -> 
       console.log "OStore post-processed data: ", data 
       callback(null, data) 

Принимающий:

router.post "/onboard/groups/csv", (req, res, next) -> 
file = req.files?['upload']? 
fs.readFile file, (err,data) -> 
    console.log err if err 
    return file = data 
console.log "postfile: ", file 

Не очень опытный с фс, но я должен делать что-то по-другому, чтобы получить доступ к файлу? использовать путь? спасибо за любую помощь.

ответ

1

Вы собираетесь использовать что-то вроде https://github.com/mscdex/connect-busboy.

Загружаемый файл находится в запросе, но еще не находится в файловой системе, он находится в памяти сервера. Таким образом, мы не можем прочитать его из файловой системы и вам нужно прочитать его из запроса.

Что-то вроде busboy или любой другой библиотеки потокового анализатора для узла поможет вам выполнить это!

+0

Должен быть основной модуль, который я мог бы использовать для этого, нет? – Fedreg

+0

@Fedreg Нет, экспресс не содержит ничего действительно в своем ядре, так что он может оставаться «худым» - так что большинство добавляется по мере необходимости («промежуточное ПО»). Синхронизация потоковых данных (файлов) несколько сложна или, по крайней мере, может быть. – Kody

+0

ОК, я буду копать глубже, THX за помощь! – Fedreg

Смежные вопросы