require(processing-js) throws Reference Error: Navigator not Found

require(processing-js) throws Reference Error: Navigator not Found

我想在 nodeJS 服务器中使用 processingJS 作为 npm 包,以便在 MS Azure 上部署。我正在使用 VS15。我无法引用它:

var pjs = require('processing-js');
var http = require('http'),
fs = require('fs');
var port = process.env.port || 1337;

我的代码的第一行抛出

ReferenceError: navigator is not defined 

我所做的研究使我相信导航器与浏览器有些 属性 相关,但我无法找到更多信息。

我查看了这些资源,但无法提出解决方案:

Require('jquery-ui') in node-webkit produces navigator not found error

https://github.com/tobie/ua-parser/issues/440

http://fredkschott.com/post/2014/06/require-and-the-module-system/

我希望能够将处理预编译为 javascript。

提前致谢。

navigator 是主机环境在桌面浏览器中可用的对象。 (很像 DOM)——javascript 语言没有定义 navigator 对象,所以 V8(底层引擎)不提供它,因为节点不是浏览器,它也没有实现 navigator 对象。

Processing 专为在浏览器中使用而设计——您需要在节点中为它提供一个填充环境,或者在浏览器中使用它(无头或无头)

对于任何回顾这个问题想知道如何将 processingjs 代码预编译成 javascript 代码的人,这是我的客户端解决方案:

var sketch = document.getElementById('processing-canvas');
var processingCode = 'some processingJS code as a string';
var jsCode = Processing.compile(processingCode);  // include the processingJS api as well as processingJS in the html page you call this script from
var processingInstance = new Processing(sketch, jsCode);