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 的集成,我不知道(这是假设您引用的大部分工作已经在 Jasper 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 发布