要求和导入不适用于Electron中的模块

时间:2019-01-03 15:00:30

标签: javascript html node.js electron desktop-application

我正在尝试使用Electron framework首次构建桌面应用,而我正在尝试使用Trilogy module。但是,不断出现一些错误。

基本上,我的代码的主要思想是拥有一个进入SQL数据库并检查表“ DATA”是否存在的按钮。 (我知道这有点of脚,但是我想在这里测试一下这个概念,所以请耐心等待。)

我的main.js代码只是在the beginner tutorial中找到的确切代码,在导入Trilogy之前似乎工作正常。我的package.json的依赖项部分如下:

"dependencies": {
    "electron": "^2.0.16",
    "sql.js": "^0.5.0",
    "trilogy": "^1.4.5"
},
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "electron ."
},
"devDependencies": {}

我的HTML代码的头部导入了脚本“ tri.js”,然后我的HTML代码的主体使用以下代码调用了该脚本:

<button onclick="search()">Produce Table</button>
<div id="table">table</div>

“ tri.js”文件包含以下代码:

require('trilogy');
const db = new Trilogy('./storage.db');

function search()
{
    var model = "THIS DOESN'T WORK";
    document.getElementById('table').innerHTML = model;
    if (db.hasModel('DATA')) {
        model = "YES";
    }
    else {
        model = "NO";
    }
    document.getElementById('table').innerHTML = model;
}

使用npm start运行此代码时,div中输出的文本变为“ THIS DOES N'T WORK”。我尝试在浏览器上运行它,但是浏览器无法识别“ require”和“ import”(我尝试使用这两个语句),并显示错误消息“找不到变量require”和“导入调用恰好需要一个论点”。单击该按钮后,当我调用db.hasModel()函数时,它在一行上显示“无法访问未初始化的变量”。

当我尝试删除import和require语句,然后直接将其直接加载到HTML中时,它会输出“未定义不是构造函数”的错误。

有人知道如何实现这一点,以便我可以做我想做的事吗?否则,也欢迎任何有关如何进一步调试的建议。谢谢。

0 个答案:

没有答案