gpt4 book ai didi

windows - 适用于 Windows 的 nodejs 上的 SQLite

转载 作者:可可西里 更新时间:2023-11-01 09:17:43 24 4
gpt4 key购买 nike

我有一个非常简单的问题。如何在 Windows 下将任何 SQLite 库与 nodejs 一起使用?我查看了 sqlite3 库,它需要特定于 linux 的编译。总的来说,这不是我第一次遇到此类问题。我在使用 TameJS 时遇到了同样的问题。如果有人知道对此有任何解决方案,我将不胜感激。谷歌保持沉默。

PS:Cygwin 不是一个选项。目标应用程序应该是一个易于使用的可移植数据库,由 nodejs 驱动,并具有 Web 浏览器界面。

最佳答案

阅读底部的更新 2 (2013-12-06) - 现在有一个纯 JS module这看起来很有希望用于 Windows 工作......

我一直有一个类似的问题,并且通过重新链接 Windows SQLite(或编译现有的 nodejs 包)来避免一些非常神奇的事情,我能想到的最好的方法是使用一个子进程并 shell out 到控制台 sqlite 客户端,然后捕获结果...不是最漂亮的,我不知道这是否可以扩展,但在有限的内部网场景中,它可能足够好™。

更新:

这是我拼凑的一些代码 - 如果您对 child_process 模块不太熟悉,可以给您一个想法。这适用于 nodejs 0.6.0

首先,我构建了从 sqlite 中提取内容所需的命令:

var cmd = '"' + sqlitePath + '" "' + dbPath + '" "select * from sqlite_master"';

请注意,如果您包含可选标志 -noheader-list,那么您可能会获得更好的解析输出。您还可以使用 -separator 'x' 控制字段分隔符,其中 x 是您的分隔符。

然后我实际上产生了子进程:

var child = exec(cmd, function(error, stdout, stderr) {
if (error) {
console.log('error while trying to do stuff...');
// error message in error and stderr
} else {
console.log('success');
// successful stuff is in stdout
}
});

结合一些字符串解析和使用 sqlite 控制台客户端的选项,您可能能够做到这一点。不过,我再说一遍,这还没有经过生产测试 - 我只是在模拟一些内部网的东西,即便如此,我确信这不是最好的方法!

更新 2 (2013-12-06):

对于现在阅读此问题的人,您可能有兴趣查看 sql.js在 github 上;它是 sqlite 的纯 JS 实现,看起来很有希望在 Windows(或任何平台)上进行交互。请注意,要通过 npm 安装,包名称是 node-sqlite-purejs

关于windows - 适用于 Windows 的 nodejs 上的 SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7380186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com