Как правильно получать данные, используя API-интерфейс узла базы данных sqlite3 - PullRequest
0 голосов
/ 27 июня 2019

Я пишу простое приложение node.js, которое извлекает данные хранилища из базы данных sqlite3. Я закодировал API с помощью Express, и когда я тестирую его с помощью curl, он не получает данные.

Я проверил модель SQL, и она работает.

const sqlite3 = require('sqlite3').verbose();


let db = new sqlite3.Database('********', (err) => {
  if (err) {
    return console.error(err.message);
  }
  console.log('Connected to the in-memory SQlite database.');
});

function recordNotFound(message) {
    Error.call(this);
    this.message = message;
    this.status = 404;
}

var Users = function () {};

Users.prototype.getAll = function(callback) {
    let sql = 'SELECT * FROM users';
    db.all(sql, [], function(err, rows) { 
        if (err) {
            console.log('chao1');
            callback(err, null);
        } else {
            console.log('chao2');
            callback(err, rows);
        }
    });
};

var users = new Users();
users.getAll(function(err, rows) {
                console.log(rows);
                callback(null, 1);
            })
        });

Также при выполнении

SELECT * FROM users;

в терминале sqlite3 корректно извлекает информацию.

Однако в файле user_api_router.js, который у меня есть,

var express = require('express');

userApiRouter = express.Router();

var Users = require('../model/users_sql_model')

var users = new Users();

userApiRouter.get('/', function(req, res) {
    users.getAll(function(err, result) {
        if (err) {
            console.log('control1');
            res.status(500).json({message: 'Error retrieving records!'});
            return;
        }
        res.status(200).json(result);
    });
});

И в файле index.js, который у меня есть,

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

var usersApiRouter = require('./app/router/user_api_router');

app.use('/v1/user', usersApiRouter);

var port = 3000;

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

Когда я запускаю index.js и набираю

curl http://localhost:3000/v1/user

Там написано,

{"message":"Error retrieving records!"}

Я не знаю, что делать, чтобы правильно извлечь записи, используя curl. Помогите мне, пожалуйста!

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