Отправить все данные из SQLite в Node.js - PullRequest
0 голосов
/ 13 июля 2020

Я новичок в SQLite и Node.js, и пока приложение может отправлять некоторые данные во внешний интерфейс. Проблема в том, что он отправляет только первую строку из таблицы, и он должен отправлять все данные.

Пока это код:

var express = require('express');
var router = express.Router();
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./db/my_db.db');

router.get('/', function (req, res, next) {
  db.serialize(function () {
    db.each('SELECT id, name, surname FROM Customers', function (
      err,
      row
    ) {
      res.send(row);
    });
  });

  db.close();
});

module.exports = router;

Кажется, этого недостаточно чтобы вставить res.send() внутрь db.each(), потому что он выполняет отправку только для первого столбца.

Как это можно сделать для всех данных из этой таблицы?

1 Ответ

1 голос
/ 13 июля 2020

Проблема связана с db.each() и res.send(), потому что последний вызывается только один раз, отправляет ответ и закрывается, а не go в al oop для всех строк.

Самое простое решение в этом случае - использовать вместо него db.all().

var express = require('express');
var router = express.Router();
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./db/my_db.db');

router.get('/', function (req, res, next) {
  db.serialize(function () {
    db.all('SELECT id, name, surname FROM Customers', function (
      err,
      row
    ) {
      res.send(row);
    });
  });

  db.close();
});

module.exports = router;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...