Node JS Require仅在最初有效(调试)

可爱的香肠

我对如何正确利用Node JS需求感到困惑。

我有一个生成子窗口的Node Webkit应用程序,每个子窗口都需要读取数据并将数据写入sqlite3数据库。

在我的index.html中,有一个用于创建iframe的按钮

<!DOCTYPE html>
<html>
<head>
<script src="index.js"></script>
</head>

<script>
   var sqlite3 = require('sqlite3').verbose();
   console.log(sqlite3);
</script>

<body>

   <!-- CREATE NEW APP IF NEEDED -->
   <button onclick="spawnApp()">Spawn App</button>

   <div id="containApp">

      <!-- RUN INITIAL APP -->
      <iframe src="apps/sub.html"></iframe>

   </div>

</body>
</html>

spawnApp()是index.js文件中的函数

function spawnApp() {

   var varIframe = document.createElement("iframe");
   varIframe.src = "apps/sub.html";

   var varContainer = document.getElementById("containApp");
   varContainer.appendChild(varIframe);

}

它产生的应用程序称为sub.html,它需要与sqlite3建立数据库连接

<!DOCTYPE html>
<html>

<script>
   var sqlite3 = require('sqlite3').verbose();
   console.log(sqlite3);
</script>

<body>

   <h4>Sub App</h4>

</body>
</html>

当我第一次执行该程序时,由于在控制台中获得以下输出,它似乎可以正常工作。

> Object                                                   index.html:9
> Object                                                     sub.html:6

这是我所期望的,从index.html上的require创建一个对象,然后从初始sub.html(它是一个静态写入iindex.html的iframe)中创建一个对象。

然而,我单击按钮添加一个新的应用程序,我得到以下错误

> Object                                                   index.html:9
> Object                                                     sub.html:6
> Uncaught ReferenceError: require is not defined            sub.html:5

还有什么奇怪的是,如果我按下了刷新按钮,即使没有使用该按钮来创建新的应用程序,我也会遇到类似的错误。

> Object {...}                                             index.html:9
> Uncaught ReferenceError: require is not defined            sub.html:5

我不知道是什么原因造成的,我花了很多时间试图弄清楚,为什么需求仅在初始程序启动时起作用?

可爱的香肠

我相信我已经找到原因并可以解决。

我正在阅读一些Node Q&A论坛,看来Node实际上并不支持iframe,因此在调用node模块时会有一些意外的行为。

不过,解决方法(可能不适合每个人的需要)只是使用divs,而是使用一些jQuery / Javascript将sub.html中的元素写入div中。

这不是一个很好的解决方法,但是我正在使用HTML生成器来显着加快HTML内容的生成,这将使解决方法更加有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有聚合的Mongodb node.js $ out仅在调用toArray()时有效

Node.JS-filter()仅在索引中进行硬编码时有效

Await仅在使用Node.js的异步函数中有效

SyntaxError:当使用Node JS连接到Mongo DB时,await仅在异步功能中有效

即使等待位于 Node.js 中的异步函数中,如何修复“await 仅在异步函数中有效”?

如何有效调试缩小的JS文件?

Node.js调试流程

Node.js'fs'-创建文件+清除文件的更有效方法

如何使Node.js有效地处理多个请求?

无法将Node.js异步函数识别为有效的异步函数

为什么使用()调用Node.js REPL中的函数有效?

如何在Node.js中进行有效的依赖注入?

如何使用Node.js最有效地解析网页

Node.JS-有效地反转大规模数组?

Node.js:有效读取ndarray中的值以读取像素

Firebase Cloud函数中的Python与Node.js事件有效负载

Node.js的crypto.createSign()的有效算法输入字符串

无法获得有效的正则表达式以在Node.js中工作

在node.js中执行“多线程”的最佳和有效方法是什么?

遍历javascript / node.js中的对象数组的有效方法

Node.js SQL Server代码似乎是错误的,但是仍然有效吗?

从node.js创建对AWS ES实例的有效签名请求

Node.js有效地导出非匿名函数(因此eslint不再抱怨)

Node.js有效负载在base64string上太大(Http 413)

构造Node.js HTTPS获得有效载荷

Node.js HTTP-TypeError:标头名称必须是有效的HTTP令牌

Node.js上载到Amazon S3的方法有效但是文件损坏

Node.js和模块范围:将文件读入内存的最有效方法

在 Node.js(快速框架)中处理文本的有效方法是什么?