Sqlite3在Express中返回带有GET请求的空数组

Sqlite3在Express中返回带有GET请求的空数组,express,node-sqlite3,Express,Node Sqlite3,我正试图使用Express,基于表单的输入,向sqlite3表发出get请求。fetch请求工作,db.all也工作,但我从行接收到一个作为空数组的响应。我已经试过req.query和req.params了。不确定错误在哪里 //server.js app.get('/names/state', (req, res, next) => { const stateValue = req.query.state; db.all(`SELECT name FROM states

我正试图使用Express,基于表单的输入,向sqlite3表发出get请求。fetch请求工作,db.all也工作,但我从行接收到一个作为空数组的响应。我已经试过req.query和req.params了。不确定错误在哪里

//server.js

app.get('/names/state', (req, res, next) => {
    const stateValue = req.query.state;
    db.all(`SELECT name FROM states WHERE name=$stateVal`, 
        {
            $stateVal: stateValue
        },
    (err, rows) => {
            res.send({rows:rows});  
    })
});
//script.js

const fetchOneBtn = (e) => {
    e.preventDefault();
    const stateVal = stateInputValue.value;

    fetch(`/names/state?state=${stateVal}`)
    .then(response =>{
        if(response.ok){

            return response.json();
        }
    }).then(names => {
        console.log(names);
    })
};

您可以使用以下代码在后端更改代码:

app.get('/names/state',(req,res,next)=>{
const stateValue=req.query.state;
var query=“从状态中选择名称,其中name=“+stateValue;
db.all(查询,(错误,行)=>{
如果(错误){
控制台日志(err);
资源状态(500)。发送(错误);
}否则{
res.send({rows});
}
})
});
现在,对于前端,您可以使用以下代码进行更改:

const fetchOneBtn=async(e)=>{
e、 预防默认值();
const stateVal=stateInputValue.value;
试一试{
const response=wait fetch(`/names/state?state=${stateVal}`{
方法:“GET”,
标题:{
“内容类型”:“应用程序/json”
},
});
log(wait response.json());
return wait response.json();
}捕获(ex){
控制台日志(ex);
}
};

我希望它能帮助您。

给出500个错误,并引用const response=wait fetch(
/names/state?state=${stateVal}
);不是空数组,而是{“errno”:1,“code”:“SQLITE_ERROR”}很抱歉,我错了。我一直在更新我的选择查询。您可以试试。首先,您可以在server.js中console.log(行)并重试。请参阅,控制台中的结果是什么。甚至在发出请求之前就抛出了错误