2017-06-05 102 views
0

我正在尝试使我在本地工作的节点应用程序的webtask函数。 Webtask提供了一个模板,其中有一个上下文(CTX)和回调(CB)作为两个参数:需要帮助写Webtask的简单回调函数

module.exports = function(ctx, cb) { 
    cb(null, { hello: ctx.data.name || 'Anonymous' }); 
}; 

我有一个看起来像这样的半工作代码:

const PDFParser = require('[email protected]') 
const request = require('request') 

module.exports = function(ctx, cb) { 

    const pdfParser = new PDFParser(); 
    const pdfUrl = ctx.body.data.url; 
    const pdfPipe = request({url: pdfUrl, encoding:null}).pipe(pdfParser); 
    const data = []; //define empty array for response data 

    pdfPipe.on("pdfParser_dataError", err => console.error(err)); 
    pdfPipe.on("pdfParser_dataReady", pdf => { 
    data.push(pdfParser.getAllFieldsTypes()); //push data into array 
    console.log("data", data); //log the result 
    }); 

    cb(null, data); 
}; 

我需要发送更新的“数据”到回调函数,但不知道如何。我目前正在取回空数组(初始const data = []),但我的console.log("data", data)返回所需的结果。

回答

1

为了解决您的代码,你需要做的是调用上(发射器)被调用时回调:

const request = require('request') 

module.exports = function(ctx, cb) { 

    const pdfParser = new PDFParser(); 
    const pdfUrl = ctx.body.data.url; 
    const pdfPipe = request({url: pdfUrl, encoding:null}).pipe(pdfParser); 
    const data = []; //define empty array for response data 

    pdfPipe.on("pdfParser_dataError", err => console.error(err)); 
    pdfPipe.on("pdfParser_dataReady", pdf => { 
    data.push(pdfParser.getAllFieldsTypes()); //push data into array 
    console.log("data", data); //log the result 
    cb(null, data); 
    }); 


};