node.js keystoneJS визуализирует представление после загрузки файла

Я использую keystone.js, который использует express.js и jade, а также модуль npm pdf-extract.

Я пытаюсь настроить форму загрузки, которая извлекает PDF-файл и отображает текст в представлении в keystone.js.

У меня возникли проблемы с отображением события завершения обработки pdf-extract. Похоже, у меня есть рекурсия. У меня есть этот маршрут, upload.js

exports = module.exports = function(req, res) {

var view = new keystone.View(req, res),
    locals = res.locals;

// Set locals
locals.section = 'upload';
locals.formData = req.body || {};
locals.validationErrors = {};

view.on('post', { action: 'upload' }, function(next) {
       ...
       ...file upload code
       ...
       var processor = pdf_extract(absolute_path_to_pdf, options, function(err) {
         if (err) {
           res.end(util.inspect(err));
         } 
       });
       processor.on('complete', function(data) {
         view.render('upload', {jadeVar:data.text_pages});
         next();
       }); //on processor.complete
    });  //on view.post
view.render('upload');  //render on no post

Это выводит около двух десятков ошибок из pdf-экстракта о загруженном файле, который не найден рекурсивным способом.

Если я сделаю это:

processor.on('complete', function(data) {
  res.end(util.inspect(data.text_pages));
});

Я получаю извлеченный текст в формате PDF, который я хочу, прямо в браузер без просмотра «загрузить». Я пытаюсь взять этот вывод и отправить его в представление «загрузить».


person stampede76    schedule 08.04.2014    source источник


Ответы (1)


Я изменил процессор при завершении события, чтобы использовать res.render вместо view.render.

processor.on('complete', function(data) {
     res.render('upload', {jadeVar:data.text_pages});
     next();
   }); //on processor.complete

Я предполагаю, что это проблема области переменных, и представление не определено?

Я узнал об этом, посмотрев keystone/lib/view.js

person stampede76    schedule 08.04.2014