【问题标题】:How to connect to a Sqlite db from an HTML file via Javascript如何通过 Javascript 从 HTML 文件连接到 Sqlite 数据库
【发布时间】:2020-04-20 14:12:45
【问题描述】:

我想通过按下HTML 文件中的按钮将数据插入SQlite3 数据库。 为了实现这一点,我编写了一个JS 脚本。 不幸的是,当我按下按钮时,我在 console.log 中收到此错误消息:

script.js:5 Uncaught ReferenceError: require is not defined

然后,我尝试使用 browserify 转换我的 JS 文件,但随后出现此错误:

无法读取未定义的属性“_handle”

这里是我的 HTML 和 JS 代码来重现错误:

HTML:

<head>
</head>
<body>
    <div>
        <label>SQLite3</label>
        <button type="button">Connection</button>   
    </div>
    <script src="script.js"></script>
</body>

JS:

function addData() {
    const sqlite3 = require('sqlite3').verbose();
    let db = new sqlite3.Database('./data.db');
    db.run('INSERT INTO info (result) VALUES (10)', function(err, row) {
        if(err) {
            console.log(err.message);
        }
        console.log("entry added to table");
    });
}
addData();

【问题讨论】:

标签: javascript html sqlite browserify


【解决方案1】:

您无法从客户端连接到 sqlite databawe,您必须从服务器端语言连接。也许您可以使用 NodeJS 作为服务器端编程语言。

按照这些步骤操作就可以了

第 1 步https://nodejs.org/en/download/下载安装node js

第二步 按照这个指令安装 npm https://www.npmjs.com/get-npm

第三步 按照此指南创建 Node js 项目http://cassandrawilcox.me/setting-up-a-node-js-project-with-npm/

第 4 步 现在你可以通过 npm 安装 sqlite3 了。

之后你必须运行服务器。如果您是初学者,请按照此操作 https://www.w3schools.com/nodejs/

【讨论】:

  • 我已经通过这个命令npm install sqlite3为sqlite3安装了nodeJS。不正确吗?
  • @HDave 是正确的,但您仍然无法从客户端使用 SQLite 数据库(例如,在您的 HTML 或浏览器中提供的脚本中)。您需要在服务器端运行它,例如在请求/路由处理程序中。
  • @H.Dave 我已经按照这个编辑了说明,也许它对你有用。
  • @Nafish Ahmed 如果我通过 shell 使用此命令 node script 启动我的 JS 文件,我的代码可以正常工作,我可以将数据插入到我的数据库中。但是,我阻止了如何从嵌入到我的html 中的按钮触发此操作。也就是说,不使用shell如何激活服​​务器?
  • 使用Ejs模块渲染模板
【解决方案2】:

Browserify 解决了浏览器不支持 Node.js 模块系统的问题。

Browserify not 可以解决除 Node.js 之外的大多数其他 API 而不是浏览器。例如,Node.js 有 fs 模块,它允许您访问运行代码的计算机的文件系统。另一方面,浏览器不允许访问,除非以非常特殊和有限的方式。

由于new sqlite3.Database('./data.db') 试图从文件中读取数据,它在浏览器中无法工作。

改用浏览器支持的其他 API(例如 IndexedDBWeb Storage

或者,如果您想在浏览器之间共享数据,请使用 Node.js 运行 Web 服务器(例如使用 Express.js)并编写可以访问数据库的 Web 服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2019-04-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    相关资源
    最近更新 更多