Я посылаю результат запроса sqlite3 через узел js в браузер как json - PullRequest
0 голосов
/ 18 мая 2018
var express = require('express');
var app = express();
var sqlite3 = require('sqlite3');

var db = new sqlite3.Database('Items.db');




app.listen(3000, function(){
    console.log('Server is listening on port 3000');
});


app.get('/', function(request, response){

db.all("SELECT * FROM Items WHERE id>1", function(err,rows,fields) {

    console.log(rows);
    console.log('This function will return a list of all stored items from database ' + rows);
    response.setHeader('Content-Type','application/json')
    response.send(JSON.stringify(rows));


});

});

Но в браузере нет ничего.

При регистрации строк в терминале он показывает неопределенное.

снимок экрана терминала

Я думаю, что строки не извлекают результаты из базы данных. Я думаю, что может быть проблема в пути, где расположена база данных.Можете ли вы сказать, где разместить файл БД?Или, если есть какая-то другая проблема?

1 Ответ

0 голосов
/ 18 мая 2018

Вероятная причина

Вы пытаетесь открыть Items.db в том же каталоге, что и server.js.В каталоге нет файла с именем Items.db, поэтому создается новая пустая база данных Items.db.

Изменить

var db = new sqlite3.Database('Items.db');

на

var db = new sqlite3.Database('relative_path_to/Items.db');

Гдеrelative_path_to - это относительный путь от server.js до Items.db.

Вы можете получить тот же результат, переместив Inputs.db в тот же каталог, что и server.js.

Альтернативная причина

Items.db не имеет таблицы Items.

Убедитесь, что Items.db имеет таблицу с таким именем.

sqlite3 Items.db
sqlite> CREATE TABLE IF NOT EXISTS Items (id INTEGER);
sqlite> .exit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...