如何将参数传递给jsreport以根据参数生成报告

时间:2016-07-22 09:31:43

标签: mysql node.js jsreport

这是使用jsreport生成报告的代码。我想通过将输入参数传递给jsreport来生成报告。

var express= require('express');
var router = express.Router();
var request=require('request');

router.get('/' ,function(req,res,next){
var shortid=req.query.shortid;
var preview =req.query.preview;

var data={ 
template:{'shortid':shortid , "recipe" : "html"},
options:{
    preview:preview
}
}
var options={
uri:'http://localhost:5488/api/report',
method:'post',
json:data
//how to pass parameter here like uri,method. 
}
request(options).pipe(res);
});
module.exports=router;

我想在jsreport的脚本中传递mysql查询的参数。

1 个答案:

答案 0 :(得分:2)

您可以通过输入数据传递参数或将其附加到选项属性

router.get('/' ,function(req,res,next){
  var shortid=req.query.shortid;
  var preview =req.query.preview;

  var data={ 
    template:{'shortid':shortid , "recipe" : "html"},
    options:{
        preview:preview
    },
    data: {
      paramA: 'foo'
    }
  }
  var options={
  uri:'http://localhost:5488/api/report',
  method:'post',
  json:data
  //how to pass parameter here like uri,method. 
  }
  request(options).pipe(res);
});

然后,您可以在req.data.paramA上的脚本中找到该参数。 (如果使用jsreport< 1.0,则在全局request对象上访问它)

function beforeRender(req, res, done) {
  var paramA = req.data.paramA
  ...
  done()
}