Node.js SQLite 调用返回 SQLITE_ERROR: no such table

我正在使用 Javascript 中的 Node.js 在 SQLite 3.2.1 中设置一个包含客户数据的数据库。


错误SQLITE_ERROR: no such table: 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);

});```


翻过高山走不出你
浏览 536回答 1
1回答

慕后森

发生错误是因为未正确引用 DB 路径。如果 SQLite 找不到现有数据库,它会创建一个新数据库。因此 SQLite 将找到一个数据库,但不是一个表。该错误消息具有误导性,因为它似乎指向内部连接错误。解决方案:在您的解决方案中查找创建数据库的路径。这将帮助您在解决方案中设置正确的路径。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript