jsreport 2.0 BeforeRender 不工作

jsreport 2.0 BeforeRender Not Working

我正在开发 jsreport v2.0 并希望为报告呈现数据。我正在使用 handlebars 和 phantom-pdf,默认情况下我的 beforeRender 函数没有被调用。 对于 jsreport v2.0,我已经为 beforeRender 添加了如下监听器,但它似乎仍然没有被默认调用来渲染数据。

function beforeRenderListeners1(req,res){
     console.log("Listener Called");
}

const jsreport = require('jsreport-core')({
})    

jsreport.beforeRenderListeners.add('beforeRenderListeners1', (req, res) => {
     console.log("hello");
     req.data.check = abc();
})

因为我不知道您正在使用的完整代码,所以我将继续为您提供一个适用于最新 jsreport-core v2 (2.0.3) 和节点 8 的代码片段

const jsreport = require('jsreport-core')()

jsreport.use(require('jsreport-handlebars')())

jsreport.beforeRenderListeners.add('beforeRenderListeners1', (req, res) => {
     console.log("before render called")
     req.data = req.data || {}
     req.data.check = 'check pass'
})

jsreport.init().then(() => {
  console.log('started')

  return jsreport.render({
    template: {
      content: '<p>sample demo content, check: {{check}}</p>',
      engine: 'handlebars',
      recipe: 'html'
    }
  })
}).then((res) => {
  console.log('render done')
  console.log(res.content.toString())
}).catch((err) => console.error(err))

将其放入一个文件中,然后 运行 它,您将在控制台中看到消息 before render called