2

jsreport 可以托管在执行应用程序的同一台服务器上吗?

jsreport 网站有这个模式来描述它应该如何工作:

本地模式

我已经在应用服务器中安装了 jsreport,并将以下代码添加到应用程序中: 应用服务器

代码:

var jsreport   = require( 'jsreport' );
jsreport.bootstrapper().start();

以下两条消息是我怀疑的:

2015-11-25T05:39:17.346Z - info: Creating default express app.
2015-11-25T05:39:17.495Z - info: jsreport server successfully started on http port: 61070

首先,它是否在运行另一个 express 应用程序?(我已经有一个 express 应用程序),其次,我的应用程序在 3000 端口下运行,为什么它在其他端口上启动?

另外,如果有人可以解释安装和运行它的正确方法,以及如何为从我的应用程序的客户端调用的报告创建端点的示例,我会感谢你.. .

4

1 回答 1

4

文档中:

附加到现有的快递应用程序

如果 jsreport 包含 express 扩展名,它将自动启动一个默认的基于 express.js 的服务器,该服务器在配置中指定的端口上运行。可以通过将 express 应用程序实例传递给选项来覆盖此行为。在这种情况下,jsreport express 扩展只会将所需的路由和中间件添加到传递的实例中。

var express = require('express');
var app = express();

app.get('/', function (req, res) {
  res.send('Hello from the main application');
});

var reportingApp = express();
app.use('/reporting', reportingApp);

var server = app.listen(3000);

var jsreport = require('jsreport')({
  express: { app :reportingApp, server: server },
  appPath: "/reporting"
});

jsreport.init().catch(function (e) {
  console.error(e);
});

有关其他答案,请参阅文档。

于 2015-11-25T10:42:09.277 回答