HTTP 触发器上的 Azure Function App jsreport 不起作用
Azure Function App jsreport on HTTP trigger not working
我正在尝试让 jsreport 在 Azure Functions 应用程序中工作。我已经安装了所有需要的包,它们是 jsreport-core jsreport-render jsreport-phantom-js,它们似乎都运行良好。我的代码:
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
if (req.query.content || (req.body && req.body.content)) {
var pdf = renderPdf(req.query.content || req.body.content, {})
context.res = {
status: 200,
body: { data: pdf }
};
}
else {
context.res = {
status: 400,
body: "Please pass the content on the query string or in the request body"
};
}
context.done();};
function renderPdf(content, data){
var jsreport = require('jsreport-core')();
var promise = jsreport.init().then(function () {
return jsreport.render({
template: {
content: content,
engine: 'jsrender',
recipe: 'phantom-pdf'
},
data: data
});
});
return Promise.resolve(promise);}
我以这个 post 为例:Export html to pdf in ASP.NET Core
我的最终目标是从 asp.net 核心调用这个函数。谢谢您的帮助。
您的 renderPdf
函数 returns 一个承诺,您没有正确使用它。您不能只将承诺分配给结果主体,而是将主体分配给 then
:
if (req.query.content || (req.body && req.body.content)) {
renderPdf(...).then(pdf => {
context.res = {
status: 200,
body: { data: pdf }
};
context.done();
});
}
else {
context.res = {
status: 400,
body: "Please pass the content on the query string or in the request body"
};
context.done();
}
我正在尝试让 jsreport 在 Azure Functions 应用程序中工作。我已经安装了所有需要的包,它们是 jsreport-core jsreport-render jsreport-phantom-js,它们似乎都运行良好。我的代码:
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
if (req.query.content || (req.body && req.body.content)) {
var pdf = renderPdf(req.query.content || req.body.content, {})
context.res = {
status: 200,
body: { data: pdf }
};
}
else {
context.res = {
status: 400,
body: "Please pass the content on the query string or in the request body"
};
}
context.done();};
function renderPdf(content, data){
var jsreport = require('jsreport-core')();
var promise = jsreport.init().then(function () {
return jsreport.render({
template: {
content: content,
engine: 'jsrender',
recipe: 'phantom-pdf'
},
data: data
});
});
return Promise.resolve(promise);}
我以这个 post 为例:Export html to pdf in ASP.NET Core
我的最终目标是从 asp.net 核心调用这个函数。谢谢您的帮助。
您的 renderPdf
函数 returns 一个承诺,您没有正确使用它。您不能只将承诺分配给结果主体,而是将主体分配给 then
:
if (req.query.content || (req.body && req.body.content)) {
renderPdf(...).then(pdf => {
context.res = {
status: 200,
body: { data: pdf }
};
context.done();
});
}
else {
context.res = {
status: 400,
body: "Please pass the content on the query string or in the request body"
};
context.done();
}