2013-06-13 2 views
0

У меня есть приложение nodejs 0.10.7 с restify 2.5.0, мое приложение является простым USER crud с загрузкой файла, я хочу, чтобы загрузить файл через writestream для лучшего контроля, получая файл , поэтому в этом порядке идей я хочу иметь возможность использовать jsonbody parser для пользовательских crud-операций, когда данные, полученные API, находятся на JSON, но я не хочу анализировать json тело, когда я получаю файл, потому что какое тело parser does читает все в памяти, а Im получает «большой» и большой объем файлов.восстановить jsonbodyparser по определенному маршруту

О, также я получаю двоичные данные из запроса клиента.

Для того, что я вижу, у меня есть два варианта: либо удалить bodyparser из настроек сервера, либо разобрать каждый запрос вручную, что привлечет меня к моему вопросу о том, как я проанализирую тело для операций CRUD.

Или другой должен найти способ указать jsonBodyParser на определенных маршрутах или под некоторыми контроллерами, но я не знаю, как это сделать.

Итак, есть ли другой вариант или эти два варианта, которые у меня есть, что было бы лучше, и если это первый вариант, то как выполнить синтаксический анализ req.body, так что операции crud можно сделать легко?

Моего загрузчик функция https://gist.github.com/maumercado/6f1f96d23bce888934db

Спасибо всем за помощь!

ответ

3

Таким образом, эти вопросы показывают, что я совершенно не понимал, как работают маршруты в процессе обновления.

То, что я сделал, было установлено restify.bodyParser() как метод для запуска перед контроллером в маршрутах, поскольку маршруты берут массив функций или одну функцию в качестве параметра.

Так как это:

// User Routes 

server.get('/users', usersController.index); 
server.post('/users', restify.bodyParser(), usersController.create); 
server.get('/users', usersController.checkUsername); 

// Upload Route 

server.post('/upload', fileController.upload); 

При этом установить, Im может работать bodyparser везде, где мне нужно, а не работать на всех сервере.

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