Node.js 上的 SaxonJS

Posted

技术标签:

【中文标题】Node.js 上的 SaxonJS【英文标题】:SaxonJS on Node.js 【发布时间】:2018-12-01 16:59:18 【问题描述】:

我正在尝试运行一个空的简单代码 sn-p 在 Windows 10 上的 NodeJs v8.11.1 上测试 SaxonJS 1.1.0。

require('./Saxon-JS-1.1.0/SaxonJS.js');

但是我收到了这个错误:

PS C:\XXX\sandbox\xsl-transformation> node main.js
C:\XXX\xsl-transformation\Saxon-JS-1.1.0\SaxonJS.js:17136
        setPlatform(JSTestDriver.platform);
                    ^
ReferenceError: JSTestDriver is not defined
at initialize (C:\XXX\sandbox\xsl-transformation\Saxon-JS-1.1.0\SaxonJS.js:17136:25)

查看源代码,我可以看到:

function initialize() 
    "use strict";
    if (inBrowser) 
        setPlatform(BrowserPlatform.platform);
        saxonPrint("Saxon-JS " + getProcessorInfo().productVersion + " in browser", 0);
     else 
        // Currently only Nashorn. (Later need to distinguish from Node case)
        // Nashorn JSTestDriver
        setPlatform(JSTestDriver.platform);
        saxonPrint("Saxon-JS " + getProcessorInfo().productVersion + " in 
   Nashorn");

        // node NodePlatform
    

    if (typeof platform.initialize === "function") 
        platform.initialize();
    

Node Platform 好像没有实现。

但是,在documentation中,却写着:

我们在这里主要讨论的是在浏览器中运行 Saxon-JS。 但是,它也能够在服务器端 javascript 中运行 诸如 Node.js 之类的环境(在此尚未完全支持 释放)。

我深入搜索了一个 SaxonJS/NodeJS 的代码 sn-p 但我没有找到。 有没有人在 NodeJS 上工作的 SaxonJS 的 sn-p 代码?

【问题讨论】:

【参考方案1】:

恐怕文档有点过头了。我们确实有用户报告说让代码在 Node.js 下运行,我们自己“在实验室”完成了它,但它需要对已发布产品的源代码进行调整。发布后,代码在浏览器平台和 Nashorn 两个平台下运行(在 Nashorn 下,它假定我们的测试工具尚未发布)。

我们正在为 Node.js 开发一个版本。作为产品正确地做到这一点需要很多浏览器版本中没有的功能,例如 XML 解析和序列化、调试支持、命令行接口和 API 等。

【讨论】:

感谢您的回答。祝发展顺利。 :) 你好迈克尔,我知道这可能是一个令人讨厌的问题,但你知道发布日期吗? 2019,上半年,结束,2020? 还有几个月的时间。不能说更多。我们不会在 Saxonica 约会 - 当我们认为它闻起来很好时,代码就会被发布。 @MichaelKay 现在 NodeJS 上 Saxon-JS 的状态如何? saxon-js v2 已于昨天在 npmjs.org 上发布,用于 NodeJS 等。 npmjs.com/package/saxon-js

以上是关于Node.js 上的 SaxonJS的主要内容,如果未能解决你的问题,请参考以下文章

如何杀死 node.js 上的打开进程?

CentOS 上的 Node.js 镜像

Node.js 上的 SaxonJS

Node.js 错误:Elastic Beanstalk 主机上的 EADDRINUSE

Azure 上的 Node.js 远程调试

Windows 上的 Node.js 生产就绪了吗? [关闭]