Node.js Вызов SQLite возвращает SQLITE_ERROR: такой таблицы нет - PullRequest
0 голосов
/ 27 марта 2020

Я устанавливаю базу данных с данными клиента в SQLite 3.2.1, используя Node.js в Javascript.

Ошибка SQLITE_ERROR: нет такой таблицы: T_KUNDENDATEN_DE продолжает возвращаться , Из ошибки я понимаю, что с БД можно связаться. SQL Запрос работает, и переменные vorname и nachname правильно фиксируются в URL и передаются в конструктор db.all. Но это вернет ошибку. В режиме отладки я не могу понять, что здесь происходит не так.

Таблица T_KUNDENDATEN_DE не является новой и содержит данные.

Есть предложения по решению этой проблемы?

URL-адрес, используемый для вызова app.get('/cdata'. http://localhost:8000/cdata?vorname=ralf&nachname=ruf

[! [Таблица и база данных] [1]] [1]
// Create express app
var express = require("express")
var app = express()
var DateObj= new Date()
var sqlite3 = require('sqlite3');
var db = new sqlite3.Database('KundendatenJS.db');
// Server port
var HTTP_PORT = 8000 
// Start server
app.listen(HTTP_PORT, () => {
    console.log("Server running on port %PORT%".replace("%PORT%",HTTP_PORT))
});
// Root endpoint
app.get("/", (req, res, next) => {
    res.json({"message":"Ok" + " " + DateObj })
});

// API endpoints
app.get('/cdata', function(req, res){
    if(req.query.vorname  && req.query.nachname){
        db.all('SELECT * FROM T_KUNDENDATEN_DE WHERE UPPER(VORNAME) = UPPER(?) AND UPPER(NACHNAME)=UPPER(?)', [req.query.vorname,req.query.nachname], function(err, rows){
            if(err){
                res.send(err.message);

            }
            else{
                console.log("Return the customer data for: " + req.query.vorname + " " + req.query.nachname);
                res.json(rows);
            }
        });
    }
    else{
console.log("No data found")
    }
});

// Default response for any other request
app.use(function(req, res){
    res.status(404);
});```

1 Ответ

0 голосов
/ 01 апреля 2020

Я автоматически ответил на этот вопрос благодаря комментарию @ messerbill.

Ошибка возникает из-за неправильной ссылки на путь DB. SQLite создает новую базу данных, если не может найти существующую. Следовательно, SQLite найдет БД, но не таблицу. Сообщение об ошибке вводит в заблуждение, поскольку, похоже, оно указывает на внутреннюю ошибку соединения.

Решение. Найдите в своем решении путь для создания базы данных. Это поможет вам выбрать правильный путь в вашем решении.

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