首页 > 解决方案 > 如何使 javascript 代码与 node.js 和浏览器兼容

问题描述

我的一半 javascript 代码不在 node.js 中运行,另一半不在我的浏览器 (chrome) 中运行。

代码的前半部分运行一个外部“Hello World”.jar 文件并将字符串保存在输出变量中。此代码在 node.js 中运行没有问题。然而,当我尝试将输出变量的内容粘贴到 html(后半部分)上时,出现错误。浏览器无法识别 require() 语句以及 node.js 无法识别“文档”对象。我知道 Node.js 用于运行 javascript 代码前端和后端,但我不知道如何才能将这两个世界联系起来。

//first half
var jre = require('node-jre');
var output = 
jre.spawnSync(["E:/proyectosJavaScript/prueba1/HelloWorld.jar"], 
"hello.helloWorld", ["parametro"], { encoding: 'utf-8' })
.stdout.trim();
console.log(output);
//second half
var titulo = document.getElementById("P1t1");
titulo.innerHTML=`${output}`;



 //browser response:    
 Uncaught ReferenceError: require is not defined at "nombreDelScript"

 //node.js response:
 ReferenceError: document is not defined
 at Object.<anonymous> (E:\proyectosJavaScript\prueba1\libreto.js:125:14)
 at Module._compile (internal/modules/cjs/loader.js:688:30)
 at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
 at Module.load (internal/modules/cjs/loader.js:598:32)
 at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
 at Function.Module._load (internal/modules/cjs/loader.js:529:3)
 at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
 at startup (internal/bootstrap/node.js:285:19)
 at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)

标签: javascriptnode.jsnpm

解决方案


推荐阅读