0

这是使用 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 查询的参数。

4

1 回答 1

3

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

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()
}
于 2016-07-24T08:40:22.237 回答