CoffeeScript、Node.js、MongoDB 和 JasperReports,有可能吗?

Posted

技术标签:

【中文标题】CoffeeScript、Node.js、MongoDB 和 JasperReports,有可能吗?【英文标题】:CoffeeScript, Node.js, MongoDB and JasperReports, is it possible? 【发布时间】:2012-03-18 23:11:01 【问题描述】:

我刚刚实现了一个 JSF(Web javascript 应用程序),它连接到 MongoDB 数据库并通过 JasperReports 库生成报告 (PDF)(因此使用 .java 文件)。

是否可以在 CoffeeScript 和 Node.js 中使用 Web 应用程序做同样的事情?我真的很陌生,所以我不知道从哪里开始。

例如:是否可以通过 Node.js 或 CoffeeScript 运行 .java?

【问题讨论】:

【参考方案1】:

是的,这是可能的。您可以使用 Node.js 启动/停止/控制另一个进程 - 因此您可以在另一个进程中启动 .java 并使用它来生成 PDF。但是......在资源使用方面可能不是很有效,所以这是一个悬而未决的问题。

或者,您可以编写一个简单的工作程序,它将从 JSON 数据生成 PDF,并在 Node.js 和这个 Java 工作程序之间使用 0MQ 或其他进程间通信。

呵呵,JSF 是我见过的最糟糕的技术之一(我相信它现在仍处于 2007 年我离开 Java 时的状态),即使是愚蠢的 JSP 和 servlet 也更好......

【讨论】:

【参考方案2】:

JSF 实际上是一个JavaServer Faces 应用程序,而不是一个JavaScript 应用程序。 JavaScript(Node.js、CoffeeScript 所基于)等同于 Java,尽管名称相似。

如果您已经有一个基于 JSF 的应用程序,那么您应该已经拥有创建基于 Web 的应用程序所需的一切。不需要 Node.js、CoffeeScript 等。

去看看 JSP、Tomcat 等,看看如何渲染网页而不是输出到 PDF,你应该已经准备好了。

【讨论】:

是的,但正如我所说,我不想保留这个 JSF。我想使用 coffescript、nodejs 和 mongoDB,因为我必须将其导入另一个基于这些语言的 Web 应用程序。 嗯,首先,您应该更具体地说明您想保留什么,不想保留什么。有一个 MongoDB 连接器可以与 Jasper Reports 一起使用,还有一个 node.js 驱动程序也可以连接到 MongoDB。至于 node.js 和与 Jasper Reports 的集成,我不知道(这是假设您引用的大部分工作已经在 J​​asper Reports 中完成并且您打算保留它)。如果你也想摆脱 Jasper Reports,那么你要么必须从头开始编写整个东西,要么找到一个 javascript 替代品。 感谢您的回答,我搜索了很多 node.js 以及他与 Jasper Reports 的集成。我什么也没找到。如果我必须摆脱 Jasper Reports,我想这将是很多工作。我知道 Pentaho 也是一个报告工具,但我想这是同一个问题。【参考方案3】:

如果您想用 javascript 重写您的应用程序并在 node.js 上运行它,您应该能够使用PDFKit 来构建 PDF。

如果您只想使用现有应用程序并将其与 node.js 服务器集成,我认为您最好并行运行它们(或通过节点代理对 JSF 应用程序的请求,以防万一) .除非你能更清楚地说明你想要完成什么,否则很难给出更好的答案。

【讨论】:

感谢 PDFKit 信息,不,我想重新开始,因为我想我不能再使用 java 文件了。由于没有关于 nodejs 和 jasperreport 集成的信息,您的解决方案(并行运行它们)可能是一个替代方案 我刚刚发现了这个nodejs module,您认为可以使用jasper 报告库吗? 我没见过那个模块,很有趣。也就是说,不,我认为这不是一个好主意。不过,您可以随时尝试! 我要尝试...我想其他解决方案将是您的(并行运行)但无论如何我不知道从哪里开始。所以我以后可能需要你的帮助:) 现在我查看了 Jasper Reports 是什么,它看起来相当复杂。如果我是你并且我已经有一个 JSF 应用程序在工作,我只会在 node.js 应用程序后面代理它(你没有告诉我们为什么需要将它“导入”到 node.js 应用程序中,但我接受你的话)。

以上是关于CoffeeScript、Node.js、MongoDB 和 JasperReports,有可能吗?的主要内容,如果未能解决你的问题,请参考以下文章

Coffeescript / Node.js:如何从对象数组中删除重复对象?

CoffeeScript、Node.js、MongoDB 和 JasperReports,有可能吗?

Node.js+Express 和 CoffeeScript 的 IDE 或编辑器

无法使用 Node.js Express MongoDB Mongoose CoffeeScript 发布

将方法添加到node.js express.js coffeescript中的字符串类

104 CoffeeScript 简史