Читайте внизу для Обновления 2 (2013-12-06) - теперь есть чистый модуль JS , который выглядит многообещающе для работы Windows ...
У меня возникла похожая проблема, и мне не хватает волшебства с перекомпоновкой Windowsite Windows (или компиляцией существующих пакетов nodejs), лучшее, что я мог придумать, - это использовать дочерний процесс и выполнить оболочку для консольный клиент sqlite, а затем захватить результаты ... Не самый красивый, и я понятия не имею, может ли это масштабироваться, но в ограниченном сценарии интрасети это может быть Good Enough ™.
Обновление:
Вот некоторый код, который я собрал вместе - дать вам представление на тот случай, если вы не знакомы с модулем 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; Это чисто JS-реализация sqlite, которая выглядит многообещающе для взаимодействия в Windows (или на любой другой платформе). Обратите внимание, что для установки через npm имя пакета node-sqlite-purejs
.