Решения, найденные мной в моих поисках, не устраняли эту проблему. Я пытаюсь сделать простую программу хранения цитат в SQLite3. Следующий код работает, когда я вхожу в кавычки идентификатор, который действительно существует:Определить, не существует ли строка SQLite в Node.js
app.get('/quote/:id', function(req, res) {
if (exists) {
db.serialize(function() {
db.each("SELECT rowid AS id, text, author FROM quotes WHERE rowid = " + req.params.id, function(err, row) {
if (row != null && row != undefined && row != []) {
return res.send("Text: '" + row.text + "'<br>Author: " + row.author);
console.log("Found that match!");
match = true;
}
else {
return res.send("Error 404!")
}
if (err) {
console.log(err);
}
});
});
}
else if (req.params.id < quotes.length && req.params.id >= 0) {
res.send(quotes[req.params.id]);
console.log("taking from the offline database");
}
});
но когда я ввожу идентификатор, который не существует, вместо того, чтобы показывать ошибку 404, страница просто не держит нагрузку, пока не выйдет время. Я считаю, что проблема может заключаться в том, что функция db.each вообще не вызывает вызов, если нужная строка не существует, но как это исправить? Можно ли проверить, существует ли что-то, а затем отображать 404, если нет?
Спасибо огромное! Это сработало как шарм, когда я изменил 'if (row! = Null)' to 'if (row.text! = Null)' !! –