Пишу Rest API на Node.js + Express.js
База данных Sqlite.
Есть метод, который получает одного пользователя по id. Если я в запросе введу id пользователя, который есть в бд, то я его могу нормально получить без каких либо ошибок со статусом 200
Если же я введу неверный id, которого нет в БД, то я не получаю пользователя, но статус код всё равно 200, ошибки почему-то не обрабатываются
Как можно исправить метод для корректной работы?
Корректный id:
Неправильный id:
users.js:
const express = require('express')
const db = require("../database");
const router = express.Router()
//get single user
router.get("/api/user/:id", (req, res, next) => {
let userId = [req.params.id];
db.get(`SELECT * FROM user where id = ?`, userId, (err, row) => {
if (err) {
res.status(400).json({"error":err.message});
}
res.status(200).json(row);
});
});
module.exports = router
server.js:
const express = require("express");
const app = express();
const router = require('./routes/users')
app.use(router)
// Server port
const PORT = 8000;
// Start server
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`)
});
database.js:
const sqlite3 = require('sqlite3').verbose();
const DBSOURCE = "database.db"
let db = new sqlite3.Database(DBSOURCE, (err) => {
if (err) {
// Cannot open database
console.error(err.message)
throw err
} else {
console.log('Connected to the SQLite database...')
}
});
module.exports = db