2015-02-23 25 views
1

如果我在幻象對象中傳遞公共URL,但我想要傳遞從另一條路由呈現的內容,則此路線有效。這可能嗎?試圖從一個Express路線獲取內容作爲jsreports中的pdf報告的內容

app.route('/pdfreport') 
     .get(function (req, res) { 
      var request = require('request'); 
      request('/about/employers', function (error, response, body) { 
       if (!error && response.statusCode == 200) { 

        var client = require("jsreport-client")('jsreportsever', 'usernamem', 'password') 

        client.render({ 
         template: { 
          content: body, 
          phantom: { 
           orientation: "portrait", 
           width: "300px" 
          } 
         } 
        },function(err, response) { 
         if (err) { 
          return next(err); 
         } 
         response.pipe(res); 
        }); 
       } 
      }) 

     }); 

回答

0

也許我錯過了什麼,但爲什麼不直接從其他路線調用代碼?通過http請求自己的服務器看起來像沒有任何減速。

無論如何,你的代碼也應該工作。您只是在請求中缺少完整的網址。它應該是這樣的:

request(req.protocol + '://' + req.get('host') + '/about/employers', ... 
+0

我想我的問題是我如何得到頁面的呈現版本,而不呈現在PDF之前......我想抓住通常會呈現並不顯示它的HTML處理PDF ...如果我可以做到這一點,沒有兩個步驟的過程,這將是偉大的 – ThinkNewDev 2015-02-24 10:38:13

+0

也許你可以使用app.render來獲取你後來放入jsreport的html。 http://expressjs.com/api.html#app.render – 2015-02-24 11:07:40