[英]SQLite error handling with JavaScript and ExpressJS
我創建了一個后端路由來獲取具有特定提供字母的游戲。 您可以在下面找到我創建的兩條路線:
router.get("/public/gamelist/:letter", (req, res, next) => {
var sql = "SELECT title FROM Games WHERE title LIKE ? || '%' AND ownage = 'true'"
var params = [req.params.letter]
db.all(sql, params, (err, rows) => {
if (rows) {
return res.status(200).json(rows);
} else if (!rows) {
return res.json({ "answer": "NoGame" })
} else if (err) {
res.status(400).json({ "error": err.message });
return;
}
});
});
router.get("/public/game/:title", (req, res, next) => {
var sql = "select * from Games where title = ?"
var params = [req.params.title]
db.get(sql, params, (err, row) => {
if (row) {
res.status(200).json(row);
} else if (!row) {
console.log("Dont exist")
return res.json({ "answer": "NoGame" })
} else if (err) {
res.status(400).json({ "error": err.message });
return;
}
});
});
第二條路線/public/game/:title
按預期工作,而第一條路線 /public /public/gamelist/:letter
沒有捕捉到空結果。 它總是返回200
,當不存在游戲時它只返回一個空數組而不是({ "answer": "NoGame" })
有誰知道我的這部分代碼有什么問題嗎?
// Happy coding guys
const express=require('express')
const routes = require('./routes')
const app=express()
app.set("view engine","ejs")
app.use(express.urlencoded({ extended: true }))
app.use("/", routes)
app.listen(3000,()=>{
console.log("SERVER ACTIVE");
})
static addSongGet(request,response){
let error=request.query.error
if (!error) {
error=[]
}else{
error=error.split(',')
}
console.log(error);
ModelSongs.addSongGet((err,data)=>{
if (err) {
response.send(err)
}else{
// console.log(error);
response.render("songsAdd",{data,error})
}
})
}
static addSongPost(request,response){
// console.log('ini dari control');
ModelSongs.addSongPost(request,(err,data)=>{
if (err) {
// console.log(err);
response.redirect(`/songs/add?error=${err}`)
}else{
response.redirect('/songs')
}
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.