我正在构建一个小型应用程序,并且坚持使用后端。测试端点时,我会收到所有书籍,还有一本书。当尝试按类别,价格和名称实施过滤时,会给我所有书籍,有人可以告诉我我做错了吗?非常感谢。我还用mysql工作台创建了一个数据库,所有数据都来自那里。以下是我的代码:
//Get all books
app.get("/api/books", (req, res) => {
let mysql = "SELECT * FROM books";
let query = conn.query(mysql, (err, results) => {
if (err) throw err;
res.send(JSON.stringify({ status: 200, error: null, response: results }));
});
});
//Get single product
app.get("/api/books/:id", (req, res) => {
let mysql = "SELECT * FROM books WHERE id=" + req.params.id;
let query = conn.query(mysql, (err, results) => {
if (err) throw err;
res.send(JSON.stringify({ status: 200, error: null, response: results }));
});
});
I am getting same result with these two url:(http://localhost:3000/books?category=stories and http://localhost:3000/books)
app.get("api/books", (req, res) => {
const category = req.query.category;
const categoryBooks = Books.filter((cat) => cat.category === category);
res.send(categoryBooks);
});
答案 0 :(得分:0)
将此粘贴到代码中,并且我还提供URL端点,因此将其复制粘贴到浏览器中。 // URL端点示例:http:// localhost:3000 / api / books / filter?category = store
// URL endpoint example : http://localhost:3000/api/books/filter?category=store
app.get("/api/books/filter", (req, res) => {
const category = req.query.category;
console.log("category is : ",category)
// const categoryBooks = Books.filter((cat) => cat.category === category);
let mysql = "SELECT * FROM books ;"
let query = conn.query(mysql, (err, results) => {
if (err) throw err;
const categoryBasedBooks = results.filter((book)=>book.category===category)
console.log("categoryBasedBooks :", categoryBasedBooks )
res.send(JSON.stringify({ status: 200, error: null, response: results }));
});
});
// URL endpoint example : http://localhost:3000/api/books/nofilter?category=store
app.get("/api/books/nofilter", (req, res) => {
const category = req.query.category;
console.log("category is : ",category)
// You can get same results without using filter by using SQL query WHERE clause
let mysql = `SELECT * FROM books WHERE category='${category}' ;`
let query = conn.query(mysql, (err, results) => {
if (err) throw err;
console.log("categoryBasedBooks :", results )
res.send(JSON.stringify({ status: 200, error: null, response: results }));
});
});